mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 22:51:35 +00:00
btrfs: hold a ref for the root in btrfs_find_orphan_roots
We lookup roots for every orphan item we have, we need to hold a ref on the root while we're doing this work. 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
9f583209f2
commit
0b2dee5cff
@ -257,6 +257,8 @@ int btrfs_find_orphan_roots(struct btrfs_fs_info *fs_info)
|
||||
|
||||
root = btrfs_get_fs_root(fs_info, &root_key, false);
|
||||
err = PTR_ERR_OR_ZERO(root);
|
||||
if (!err && !btrfs_grab_fs_root(root))
|
||||
err = -ENOENT;
|
||||
if (err && err != -ENOENT) {
|
||||
break;
|
||||
} else if (err == -ENOENT) {
|
||||
@ -287,6 +289,7 @@ int btrfs_find_orphan_roots(struct btrfs_fs_info *fs_info)
|
||||
set_bit(BTRFS_ROOT_DEAD_TREE, &root->state);
|
||||
btrfs_add_dead_root(root);
|
||||
}
|
||||
btrfs_put_fs_root(root);
|
||||
}
|
||||
|
||||
btrfs_free_path(path);
|
||||
|
Loading…
Reference in New Issue
Block a user