]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: raid56: fix memory leak of btrfs_raid_bio::stripe_uptodate_bitmap
authorFilipe Manana <fdmanana@suse.com>
Fri, 30 Jan 2026 17:06:45 +0000 (17:06 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Feb 2026 05:37:29 +0000 (06:37 +0100)
We allocate the bitmap but we never free it in free_raid_bio_pointers().
Fix this by adding a bitmap_free() call against the stripe_uptodate_bitmap
of a raid bio.

Fixes: 1810350b04ef ("btrfs: raid56: move sector_ptr::uptodate into a dedicated bitmap")
Reported-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/linux-btrfs/20260126045315.GA31641@lst.de/
Reviewed-by: Qu Wenruo <wqu@suse.com>
Tested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/raid56.c

index f38d8305e46d7a186b610fdb79be9b1596b1d80d..baadaaa189c05d968b3b63687bce5dabdf116939 100644 (file)
@@ -150,6 +150,7 @@ static void scrub_rbio_work_locked(struct work_struct *work);
 static void free_raid_bio_pointers(struct btrfs_raid_bio *rbio)
 {
        bitmap_free(rbio->error_bitmap);
+       bitmap_free(rbio->stripe_uptodate_bitmap);
        kfree(rbio->stripe_pages);
        kfree(rbio->bio_paddrs);
        kfree(rbio->stripe_paddrs);