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 <[email protected]> --- cmds-check.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/cmds-check.c b/cmds-check.c index 3cf59b6..8a3f2cd 100644 --- a/cmds-check.c +++ b/cmds-check.c @@ -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) -- 1.9.0 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
