提交 abefa55a 编写于 作者: J Josef Bacik

Btrfs: check return value of commit when recovering log

We need to check the return value of the commit in case something goes wrong,
otherwise we could end up going down the line and doing more stuff (like orphan
cleanup) before we notice we should have errored out.  We need to do this before
we free up the log_tree_root since the caller will handle all of that.  Thanks,
Signed-off-by: NJosef Bacik <jbacik@fusionio.com>
上级 32b02538
......@@ -4012,16 +4012,17 @@ int btrfs_recover_log_trees(struct btrfs_root *log_root_tree)
btrfs_free_path(path);
/* step 4: commit the transaction, which also unpins the blocks */
ret = btrfs_commit_transaction(trans, fs_info->tree_root);
if (ret)
return ret;
free_extent_buffer(log_root_tree->node);
log_root_tree->log_root = NULL;
fs_info->log_root_recovering = 0;
/* step 4: commit the transaction, which also unpins the blocks */
btrfs_commit_transaction(trans, fs_info->tree_root);
kfree(log_root_tree);
return 0;
return 0;
error:
btrfs_free_path(path);
return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册