Commit d97d64c5 authored by Chris Mason's avatar Chris Mason Committed by Greg Kroah-Hartman

Btrfs: remove root_log_ctx from ctx list before btrfs_sync_log returns

commit cbd60aa7 upstream.

We use a btrfs_log_ctx structure to pass information into the
tree log commit, and get error values out.  It gets added to a per
log-transaction list which we walk when things go bad.

Commit d1433deb added an optimization to skip waiting for the log
commit, but didn't take root_log_ctx out of the list.  This
patch makes sure we remove things before exiting.
Signed-off-by: default avatarChris Mason <clm@fb.com>
Fixes: d1433debSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4faef745
...@@ -2851,6 +2851,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans, ...@@ -2851,6 +2851,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
if (log_root_tree->log_transid_committed >= root_log_ctx.log_transid) { if (log_root_tree->log_transid_committed >= root_log_ctx.log_transid) {
blk_finish_plug(&plug); blk_finish_plug(&plug);
list_del_init(&root_log_ctx.list);
mutex_unlock(&log_root_tree->log_mutex); mutex_unlock(&log_root_tree->log_mutex);
ret = root_log_ctx.log_ret; ret = root_log_ctx.log_ret;
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment