Skip to content

Commit fec9b9d

Browse files
mssolakdave
authored andcommitted
btrfs: fix memory leaks when rejecting a non SINGLE data profile without an RST
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, we set the ret value and fall through the rest of the cleanup code. Fixes: 5906333 ("btrfs: zoned: don't skip block group profile checks on conventional zones") CC: [email protected] # 6.8+ Reviewed-by: Johannes Thumshirn <[email protected]> Signed-off-by: Miquel Sabaté Solà <[email protected]> Signed-off-by: David Sterba <[email protected]>
1 parent 8ab2fa6 commit fec9b9d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

fs/btrfs/zoned.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1753,7 +1753,7 @@ int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new)
17531753
!fs_info->stripe_root) {
17541754
btrfs_err(fs_info, "zoned: data %s needs raid-stripe-tree",
17551755
btrfs_bg_type_to_raid_name(map->type));
1756-
return -EINVAL;
1756+
ret = -EINVAL;
17571757
}
17581758

17591759
if (unlikely(cache->alloc_offset > cache->zone_capacity)) {

0 commit comments

Comments
 (0)