From f3109e33bb0a523f70a3394b51c878dbedb60528 Mon Sep 17 00:00:00 2001 From: Filipe Manana Date: Mon, 19 Sep 2022 15:06:30 +0100 Subject: [PATCH] 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 Reviewed-by: David Sterba Signed-off-by: David Sterba --- fs/btrfs/extent_map.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c index 587e029..28c5e02 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; -- 2.7.4