]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
btrfs: pass the extent map tree's inode to try_merge_map()
authorFilipe Manana <fdmanana@suse.com>
Thu, 11 Apr 2024 10:32:14 +0000 (11:32 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 7 May 2024 19:31:06 +0000 (21:31 +0200)
Extent maps are always associated to an inode's extent map tree, so
there's no need to pass the extent map tree explicitly to try_merge_map().

In order to facilitate an upcoming change that adds a shrinker for extent
maps, change try_merge_map() to receive the inode instead of its extent
map tree.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_map.c

index 0d9066865dfbbb23ac32f9ab283ad9dc39d7332a..fca08ac95a4a99a4caaefeac0fc796fdcb49d420 100644 (file)
@@ -223,8 +223,9 @@ static bool mergeable_maps(const struct extent_map *prev, const struct extent_ma
        return next->block_start == prev->block_start;
 }
 
-static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em)
+static void try_merge_map(struct btrfs_inode *inode, struct extent_map *em)
 {
+       struct extent_map_tree *tree = &inode->extent_tree;
        struct extent_map *merge = NULL;
        struct rb_node *rb;
 
@@ -322,7 +323,7 @@ int unpin_extent_cache(struct btrfs_inode *inode, u64 start, u64 len, u64 gen)
        em->generation = gen;
        em->flags &= ~EXTENT_FLAG_PINNED;
 
-       try_merge_map(tree, em);
+       try_merge_map(inode, em);
 
 out:
        write_unlock(&tree->lock);
@@ -333,13 +334,11 @@ out:
 
 void clear_em_logging(struct btrfs_inode *inode, struct extent_map *em)
 {
-       struct extent_map_tree *tree = &inode->extent_tree;
-
-       lockdep_assert_held_write(&tree->lock);
+       lockdep_assert_held_write(&inode->extent_tree.lock);
 
        em->flags &= ~EXTENT_FLAG_LOGGING;
        if (extent_map_in_tree(em))
-               try_merge_map(tree, em);
+               try_merge_map(inode, em);
 }
 
 static inline void setup_extent_mapping(struct btrfs_inode *inode,
@@ -353,7 +352,7 @@ static inline void setup_extent_mapping(struct btrfs_inode *inode,
        if (modified)
                list_add(&em->list, &inode->extent_tree.modified_extents);
        else
-               try_merge_map(&inode->extent_tree, em);
+               try_merge_map(inode, em);
 }
 
 /*