btrfs: reloc: add backref_cache::fs_info member
authorQu Wenruo <wqu@suse.com>
Thu, 5 Mar 2020 05:54:11 +0000 (13:54 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 May 2020 09:25:17 +0000 (11:25 +0200)
Add this member so that we can grab fs_info without the help from
reloc_control.

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

index 39294c595c6683a5b8658011fb81403ad196a46f..0833cfa82da9d7495d53677144d7c1262dc207e7 100644 (file)
@@ -164,6 +164,8 @@ struct backref_cache {
 
        /* The list of useless backref nodes during backref cache build */
        struct list_head useless_node;
+
+       struct btrfs_fs_info *fs_info;
 };
 
 /*
@@ -266,7 +268,8 @@ static void mapping_tree_init(struct mapping_tree *tree)
        spin_lock_init(&tree->lock);
 }
 
-static void backref_cache_init(struct backref_cache *cache)
+static void backref_cache_init(struct btrfs_fs_info *fs_info,
+                              struct backref_cache *cache)
 {
        int i;
        cache->rb_root = RB_ROOT;
@@ -277,6 +280,7 @@ static void backref_cache_init(struct backref_cache *cache)
        INIT_LIST_HEAD(&cache->leaves);
        INIT_LIST_HEAD(&cache->pending_edge);
        INIT_LIST_HEAD(&cache->useless_node);
+       cache->fs_info = fs_info;
 }
 
 static void backref_cache_cleanup(struct backref_cache *cache)
@@ -4188,7 +4192,7 @@ static struct reloc_control *alloc_reloc_control(struct btrfs_fs_info *fs_info)
 
        INIT_LIST_HEAD(&rc->reloc_roots);
        INIT_LIST_HEAD(&rc->dirty_subvol_roots);
-       backref_cache_init(&rc->backref_cache);
+       backref_cache_init(fs_info, &rc->backref_cache);
        mapping_tree_init(&rc->reloc_root_tree);
        extent_io_tree_init(fs_info, &rc->processed_blocks,
                            IO_TREE_RELOC_BLOCKS, NULL);