diff options
author | Filipe Manana <fdmanana@suse.com> | 2022-09-19 15:06:30 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-09-29 17:08:30 +0200 |
commit | f3109e33bb0a523f70a3394b51c878dbedb60528 (patch) | |
tree | ab32c5e8dad49a3a72f015495c90eb7bf04e99a2 | |
parent | 4c0c8cfc8433457ed545e67df0d689d2e0de0746 (diff) |
btrfs: use extent_map_end() at btrfs_drop_extent_map_range()
Instead of open coding the end offset calculation of an extent map, use
the helper extent_map_end() and cache its result in a local variable,
since it's used several times.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/extent_map.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c index 587e0298bfab..28c5e0243adc 100644 --- a/fs/btrfs/extent_map.c +++ b/fs/btrfs/extent_map.c @@ -690,6 +690,7 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end, } while (1) { struct extent_map *em; + u64 em_end; u64 gen; unsigned long flags; bool ends_after_range = false; @@ -710,7 +711,8 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end, write_unlock(&em_tree->lock); break; } - if (testend && em->start + em->len > start + len) + em_end = extent_map_end(em); + if (testend && em_end > start + len) ends_after_range = true; if (skip_pinned && test_bit(EXTENT_FLAG_PINNED, &em->flags)) { if (ends_after_range) { @@ -718,9 +720,9 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end, write_unlock(&em_tree->lock); break; } - start = em->start + em->len; + start = em_end; if (testend) - len = start + len - (em->start + em->len); + len = start + len - em_end; free_extent_map(em); write_unlock(&em_tree->lock); continue; @@ -767,7 +769,7 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end, } if (ends_after_range) { split->start = start + len; - split->len = em->start + em->len - (start + len); + split->len = em_end - (start + len); split->block_start = em->block_start; split->flags = flags; split->compress_type = em->compress_type; |