]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: add helper to replace extent map range with a new extent map
authorFilipe Manana <fdmanana@suse.com>
Mon, 19 Sep 2022 14:06:33 +0000 (15:06 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 29 Sep 2022 15:08:30 +0000 (17:08 +0200)
commit95412afcd76d975ba3975b22b2fd39d7b11f9909
treed77d701cb1e892c9dab5bf1c695644199272739d
parentb56a40e685f6a73b7ec63699bb86f0965d2ea757
btrfs: add helper to replace extent map range with a new extent map

We have several places that need to drop all the extent maps in a given
file range and then add a new extent map for that range. Currently they
call btrfs_drop_extent_map_range() to delete all extent maps in the range
and then keep trying to add the new extent map in a loop that keeps
retrying while the insertion of the new extent map fails with -EEXIST.

So instead of repeating this logic, add a helper to extent_map.c that
does these steps and name it btrfs_replace_extent_map_range(). Also add
a comment about why the retry loop is necessary.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_map.c
fs/btrfs/extent_map.h
fs/btrfs/file.c
fs/btrfs/inode.c
fs/btrfs/relocation.c