btrfs: export and rename free_fs_info
authorJosef Bacik <josef@toxicpanda.com>
Fri, 24 Jan 2020 14:32:53 +0000 (09:32 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 23 Mar 2020 16:01:32 +0000 (17:01 +0100)
We're going to start freeing roots and doing other complicated things in
free_fs_info, so we need to move it to disk-io.c and export it in order
to use things lik btrfs_put_fs_root().

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/disk-io.h
fs/btrfs/super.c

index 36dbf4e..8c1a8f2 100644 (file)
@@ -2695,23 +2695,6 @@ static inline int btrfs_need_cleaner_sleep(struct btrfs_fs_info *fs_info)
        return fs_info->sb->s_flags & SB_RDONLY || btrfs_fs_closing(fs_info);
 }
 
-static inline void free_fs_info(struct btrfs_fs_info *fs_info)
-{
-       kfree(fs_info->balance_ctl);
-       kfree(fs_info->delayed_root);
-       kfree(fs_info->extent_root);
-       kfree(fs_info->tree_root);
-       kfree(fs_info->chunk_root);
-       kfree(fs_info->dev_root);
-       kfree(fs_info->csum_root);
-       kfree(fs_info->quota_root);
-       kfree(fs_info->uuid_root);
-       kfree(fs_info->free_space_root);
-       kfree(fs_info->super_copy);
-       kfree(fs_info->super_for_commit);
-       kvfree(fs_info);
-}
-
 /* tree mod log functions from ctree.c */
 u64 btrfs_get_tree_mod_seq(struct btrfs_fs_info *fs_info,
                           struct seq_list *elem);
index 43af9f9..ce36a4b 100644 (file)
@@ -1523,6 +1523,24 @@ int btrfs_insert_fs_root(struct btrfs_fs_info *fs_info,
        return ret;
 }
 
+void btrfs_free_fs_info(struct btrfs_fs_info *fs_info)
+{
+       kfree(fs_info->balance_ctl);
+       kfree(fs_info->delayed_root);
+       kfree(fs_info->extent_root);
+       kfree(fs_info->tree_root);
+       kfree(fs_info->chunk_root);
+       kfree(fs_info->dev_root);
+       kfree(fs_info->csum_root);
+       kfree(fs_info->quota_root);
+       kfree(fs_info->uuid_root);
+       kfree(fs_info->free_space_root);
+       kfree(fs_info->super_copy);
+       kfree(fs_info->super_for_commit);
+       kvfree(fs_info);
+}
+
+
 struct btrfs_root *btrfs_get_fs_root(struct btrfs_fs_info *fs_info,
                                     struct btrfs_key *location,
                                     bool check_ref)
index 8add2e1..97e7ac4 100644 (file)
@@ -68,6 +68,7 @@ struct btrfs_root *btrfs_get_fs_root(struct btrfs_fs_info *fs_info,
                                     struct btrfs_key *key,
                                     bool check_ref);
 
+void btrfs_free_fs_info(struct btrfs_fs_info *fs_info);
 int btrfs_cleanup_fs_roots(struct btrfs_fs_info *fs_info);
 void btrfs_btree_balance_dirty(struct btrfs_fs_info *fs_info);
 void btrfs_btree_balance_dirty_nodelay(struct btrfs_fs_info *fs_info);
index 2c459d2..a70c89b 100644 (file)
@@ -1580,7 +1580,7 @@ static struct dentry *btrfs_mount_root(struct file_system_type *fs_type,
 
        if (s->s_root) {
                btrfs_close_devices(fs_devices);
-               free_fs_info(fs_info);
+               btrfs_free_fs_info(fs_info);
                if ((flags ^ s->s_flags) & SB_RDONLY)
                        error = -EBUSY;
        } else {
@@ -1603,7 +1603,7 @@ static struct dentry *btrfs_mount_root(struct file_system_type *fs_type,
 error_close_devices:
        btrfs_close_devices(fs_devices);
 error_fs_info:
-       free_fs_info(fs_info);
+       btrfs_free_fs_info(fs_info);
 error_sec_opts:
        security_free_mnt_opts(&new_sec_opts);
        return ERR_PTR(error);
@@ -2179,7 +2179,7 @@ static void btrfs_kill_super(struct super_block *sb)
 {
        struct btrfs_fs_info *fs_info = btrfs_sb(sb);
        kill_anon_super(sb);
-       free_fs_info(fs_info);
+       btrfs_free_fs_info(fs_info);
 }
 
 static struct file_system_type btrfs_fs_type = {