summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/relocation.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index 2a0a734a5d88..b8fc07ad0a64 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -473,12 +473,16 @@ static int handle_indirect_tree_backref(struct btrfs_backref_cache *cache,
struct btrfs_backref_edge *edge;
struct extent_buffer *eb;
struct btrfs_root *root;
+ struct btrfs_key root_key;
struct rb_node *rb_node;
int level;
bool need_check = true;
int ret;
- root = read_fs_root(fs_info, ref_key->offset);
+ root_key.objectid = ref_key->offset;
+ root_key.type = BTRFS_ROOT_ITEM_KEY;
+ root_key.offset = (u64)-1;
+ root = btrfs_get_fs_root(fs_info, &root_key, false);
if (IS_ERR(root))
return PTR_ERR(root);
if (!test_bit(BTRFS_ROOT_REF_COWS, &root->state))