btrfs: fix folio refcount in __alloc_dummy_extent_buffer()
BugLink: https://bugs.launchpad.net/bugs/2077600
commit a56c85fa2d59ab0780514741550edf87989a66e9 upstream.
Another improper use of __folio_put() in an error path after freshly
allocating pages/folios which returns them with the refcount initialized
to 1. The refactor from __free_pages() -> __folio_put() (instead of
folio_put) removed a refcount decrement found in __free_pages() and
folio_put but absent from __folio_put().
Fixes: 13df3775ef ("btrfs: cleanup metadata page pointer usage")
CC: stable@vger.kernel.org # 6.8+
Tested-by: Ed Tomlinson <edtoml@gmail.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Boris Burkov <boris@bur.io>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Portia Stephens <portia.stephens@canonical.com>
Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
committed by
Stefan Bader
parent
40cb32945b
commit
d780da0408
@@ -3510,7 +3510,7 @@ err:
|
||||
for (int i = 0; i < num_folios; i++) {
|
||||
if (eb->folios[i]) {
|
||||
detach_extent_buffer_folio(eb, eb->folios[i]);
|
||||
__folio_put(eb->folios[i]);
|
||||
folio_put(eb->folios[i]);
|
||||
}
|
||||
}
|
||||
__free_extent_buffer(eb);
|
||||
|
||||
Reference in New Issue
Block a user