mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-18 04:54:52 +00:00
btrfs: hold a ref on the root in open_ctree
We lookup the fs_root and put it in our fs_info directly, we should hold a ref on this root for the lifetime of the fs_info. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
0d4b046301
commit
4c78e9f596
1 changed files with 8 additions and 0 deletions
|
@ -1537,6 +1537,7 @@ void btrfs_free_fs_info(struct btrfs_fs_info *fs_info)
|
|||
kfree(fs_info->free_space_root);
|
||||
kfree(fs_info->super_copy);
|
||||
kfree(fs_info->super_for_commit);
|
||||
btrfs_put_fs_root(fs_info->fs_root);
|
||||
kvfree(fs_info);
|
||||
}
|
||||
|
||||
|
@ -3206,6 +3207,13 @@ int __cold open_ctree(struct super_block *sb,
|
|||
goto fail_qgroup;
|
||||
}
|
||||
|
||||
if (!btrfs_grab_fs_root(fs_info->fs_root)) {
|
||||
fs_info->fs_root = NULL;
|
||||
err = -ENOENT;
|
||||
btrfs_warn(fs_info, "failed to grab a ref on the fs tree");
|
||||
goto fail_qgroup;
|
||||
}
|
||||
|
||||
if (sb_rdonly(sb))
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue