summaryrefslogtreecommitdiff
path: root/fs/btrfs/relocation.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/relocation.c')
-rw-r--r--fs/btrfs/relocation.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index bcb665613e78..e0cb67a62d89 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -4233,17 +4233,16 @@ int btrfs_recover_relocation(struct btrfs_fs_info *fs_info)
key.offset = (u64)-1;
while (1) {
- ret = btrfs_search_slot(NULL, fs_info->tree_root, &key,
+ err = btrfs_search_slot(NULL, fs_info->tree_root, &key,
path, 0, 0);
- if (ret < 0) {
- err = ret;
+ if (err < 0)
goto out;
- }
- if (ret > 0) {
+ if (err > 0) {
if (path->slots[0] == 0)
break;
path->slots[0]--;
}
+ err = 0;
leaf = path->nodes[0];
btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
btrfs_release_path(path);
@@ -4265,16 +4264,13 @@ int btrfs_recover_relocation(struct btrfs_fs_info *fs_info)
fs_root = btrfs_get_fs_root(fs_info,
reloc_root->root_key.offset, false);
if (IS_ERR(fs_root)) {
- ret = PTR_ERR(fs_root);
- if (ret != -ENOENT) {
- err = ret;
+ err = PTR_ERR(fs_root);
+ if (err != -ENOENT)
goto out;
- }
- ret = mark_garbage_root(reloc_root);
- if (ret < 0) {
- err = ret;
+ err = mark_garbage_root(reloc_root);
+ if (err < 0)
goto out;
- }
+ err = 0;
} else {
btrfs_put_root(fs_root);
}
@@ -4296,11 +4292,9 @@ int btrfs_recover_relocation(struct btrfs_fs_info *fs_info)
goto out;
}
- ret = reloc_chunk_start(fs_info);
- if (ret < 0) {
- err = ret;
+ err = reloc_chunk_start(fs_info);
+ if (err < 0)
goto out_end;
- }
rc->extent_root = btrfs_extent_root(fs_info, 0);