btrfs: return EUCLEAN if extent_inline_ref type is invalid
[sfrench/cifs-2.6.git] / fs / btrfs / relocation.c
index 879b76fa881a5a6ded712dac891bd34d60ffdc18..44722e939e341b47188e9e2c4bff4ba4cbd27033 100644 (file)
@@ -792,7 +792,7 @@ again:
                        type = btrfs_get_extent_inline_ref_type(eb, iref,
                                                        BTRFS_REF_TYPE_BLOCK);
                        if (type == BTRFS_REF_TYPE_INVALID) {
-                               err = -EINVAL;
+                               err = -EUCLEAN;
                                goto out;
                        }
                        key.type = type;
@@ -3801,7 +3801,7 @@ int add_data_references(struct reloc_control *rc,
                        ret = find_data_references(rc, extent_key,
                                                   eb, dref, blocks);
                } else {
-                       ret = -EINVAL;
+                       ret = -EUCLEAN;
                        btrfs_err(rc->extent_root->fs_info,
                     "extent %llu slot %d has an invalid inline ref type",
                             eb->start, path->slots[0]);
@@ -4169,8 +4169,7 @@ restart:
                }
        }
        if (trans && progress && err == -ENOSPC) {
-               ret = btrfs_force_chunk_alloc(trans, fs_info,
-                                             rc->block_group->flags);
+               ret = btrfs_force_chunk_alloc(trans, rc->block_group->flags);
                if (ret == 1) {
                        err = 0;
                        progress = 0;
@@ -4375,7 +4374,7 @@ int btrfs_relocate_block_group(struct btrfs_fs_info *fs_info, u64 group_start)
        rc->block_group = btrfs_lookup_block_group(fs_info, group_start);
        BUG_ON(!rc->block_group);
 
-       ret = btrfs_inc_block_group_ro(fs_info, rc->block_group);
+       ret = btrfs_inc_block_group_ro(rc->block_group);
        if (ret) {
                err = ret;
                goto out;