We're looking up in an arbitrary root, we need to hold a ref on that
root.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
inum, offset, root_id);
return PTR_ERR(root);
}
+ if (!btrfs_grab_fs_root(root))
+ return 0;
key.objectid = inum;
key.type = BTRFS_EXTENT_DATA_KEY;
key.offset = offset;
ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
- if (WARN_ON(ret < 0))
+ if (WARN_ON(ret < 0)) {
+ btrfs_put_fs_root(root);
return ret;
+ }
ret = 0;
while (1) {
backref_insert(&new->root, backref);
old->count++;
out:
+ btrfs_put_fs_root(root);
btrfs_release_path(path);
WARN_ON(ret);
return ret;