public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] btrfs: fix memory leak when rejecting a non SINGLE data profile without an RST
@ 2025-10-07  5:54 Miquel Sabaté Solà
  2025-10-07 10:13 ` Johannes Thumshirn
  0 siblings, 1 reply; 5+ messages in thread
From: Miquel Sabaté Solà @ 2025-10-07  5:54 UTC (permalink / raw)
  To: linux-btrfs; +Cc: clm, dsterba, linux-kernel, Miquel Sabaté Solà

At the end of btrfs_load_block_group_zone_info() the first thing we do
is to ensure that if the mapping type is not a SINGLE one and there is
no RAID stripe tree, then we return early with an error.

Doing that, though, prevents the code from running the last calls from
this function which are about freeing memory allocated during its
run. Hence, in this case, instead of returning early go to the freeing
section of this function and leave then.

Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
---
 fs/btrfs/zoned.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index e3341a84f4ab..b0f5d61dbfd2 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -1753,7 +1753,8 @@ int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new)
 	    !fs_info->stripe_root) {
 		btrfs_err(fs_info, "zoned: data %s needs raid-stripe-tree",
 			  btrfs_bg_type_to_raid_name(map->type));
-		return -EINVAL;
+		ret = -EINVAL;
+		goto out_free;
 	}
 
 	if (unlikely(cache->alloc_offset > cache->zone_capacity)) {
@@ -1785,6 +1786,8 @@ int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new)
 		btrfs_free_chunk_map(cache->physical_map);
 		cache->physical_map = NULL;
 	}
+
+out_free:
 	bitmap_free(active);
 	kfree(zone_info);
 
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-10-07 12:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-07  5:54 [PATCH] btrfs: fix memory leak when rejecting a non SINGLE data profile without an RST Miquel Sabaté Solà
2025-10-07 10:13 ` Johannes Thumshirn
2025-10-07 11:04   ` Miquel Sabaté Solà
     [not found]   ` <0a87083a-cfef-4cf5-a73f-465797fa5759@wdc.com>
2025-10-07 12:04     ` Miquel Sabaté Solà
2025-10-07 12:14       ` Johannes Thumshirn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox