summaryrefslogtreecommitdiff
path: root/fs/btrfs/extent_map.c
diff options
context:
space:
mode:
authorJohannes Thumshirn <johannes.thumshirn@wdc.com>2024-07-09 09:40:34 +0200
committerDavid Sterba <dsterba@suse.com>2024-09-10 16:51:12 +0200
commit7fa5230b46f2c333f090716c52e99a0fbbee5fbd (patch)
tree0c5339307752d1b3acb317222b81295247a0e10d /fs/btrfs/extent_map.c
parent8c4cba2adbb0ec63f3833cad7452a431580e9ffa (diff)
downloadlinux-7fa5230b46f2c333f090716c52e99a0fbbee5fbd.tar.gz
linux-7fa5230b46f2c333f090716c52e99a0fbbee5fbd.tar.bz2
linux-7fa5230b46f2c333f090716c52e99a0fbbee5fbd.zip
btrfs: update stripe_extent delete loop assumptions
btrfs_delete_raid_extent() was written under the assumption, that it's call-chain always passes a start, length tuple that matches a single extent. But btrfs_delete_raid_extent() is called by do_free_extent_accounting() which in turn is called by __btrfs_free_extent(). But this call-chain passes in a start address and a length that can possibly match multiple on-disk extents. To make this possible, we have to adjust the start and length of each btree node lookup, to not delete beyond the requested range. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/extent_map.c')
0 files changed, 0 insertions, 0 deletions