mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
btrfs: fix chunk map leak in btrfs_map_block() after btrfs_chunk_map_num_copies()
Fix a chunk map leak in btrfs_map_block(): if we return early with -EINVAL,
we're not freeing the chunk map that we've just looked up.
Fixes: 0ae653fbec ("btrfs: reduce chunk_map lookups in btrfs_map_block()")
CC: stable@vger.kernel.org # 6.12+
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Mark Harmstone <mark@harmstone.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
587bb33b10
commit
f15fb3d415
1 changed files with 4 additions and 2 deletions
|
|
@ -6921,8 +6921,10 @@ int btrfs_map_block(struct btrfs_fs_info *fs_info, enum btrfs_map_op op,
|
|||
}
|
||||
|
||||
num_copies = btrfs_chunk_map_num_copies(map);
|
||||
if (io_geom.mirror_num > num_copies)
|
||||
return -EINVAL;
|
||||
if (io_geom.mirror_num > num_copies) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
map_offset = logical - map->start;
|
||||
io_geom.raid56_full_stripe_start = (u64)-1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue