Btrfs-progs: fsck: reset balance after reiniting extent root

reset balance need cow block which will insert extent item into
extent tree. If we do this before reinitting extent root, we may
encounter EEIXST.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
master
Wang Shilong 2014-03-06 13:53:57 +08:00 committed by Chris Mason
parent bedef66c0b
commit 1c1e57eb8c
1 changed files with 5 additions and 7 deletions

View File

@ -6253,12 +6253,6 @@ static int reinit_extent_tree(struct btrfs_trans_handle *trans,
return ret;
}
ret = reset_balance(trans, fs_info);
if (ret) {
fprintf(stderr, "error reseting the pending balance\n");
return ret;
}
/* Ok we can allocate now, reinit the extent root */
ret = btrfs_fsck_reinit_root(trans, fs_info->extent_root, 0);
if (ret) {
@ -6293,7 +6287,11 @@ static int reinit_extent_tree(struct btrfs_trans_handle *trans,
btrfs_extent_post_op(trans, fs_info->extent_root);
}
return 0;
ret = reset_balance(trans, fs_info);
if (ret)
fprintf(stderr, "error reseting the pending balance\n");
return ret;
}
static int recow_extent_buffer(struct btrfs_root *root, struct extent_buffer *eb)