diff options
-rw-r--r-- | fs/btrfs/relocation.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index 0336a48d7d96..976917ca412a 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -3751,7 +3751,11 @@ static int find_data_references(struct reloc_control *rc, root = read_fs_root(fs_info, ref_root); if (IS_ERR(root)) { err = PTR_ERR(root); - goto out; + goto out_free; + } + if (!btrfs_grab_fs_root(root)) { + err = -ENOENT; + goto out_free; } key.objectid = ref_objectid; @@ -3864,6 +3868,8 @@ next: } out: + btrfs_put_fs_root(root); +out_free: btrfs_free_path(path); return err; } |