From 7c19b350811377702790c5dd8171e47b184499f5 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Thu, 31 May 2012 15:49:57 -0400 Subject: [PATCH] --- yaml --- r: 310819 b: refs/heads/master c: d7096fc3ef8360f30f228344bc564d4f97d8a158 h: refs/heads/master i: 310817: 30ddf84924e726fad5330516afa6af402a17512b 310815: dca03952d487d4b31e59761366f3658ad549e094 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/disk-io.c | 9 +++------ trunk/fs/btrfs/transaction.c | 4 ++++ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index d473f2a3515d..50b3fc0296fa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b939d1ab76b4aa816343cdbd8b44ce9929a3b9ef +refs/heads/master: d7096fc3ef8360f30f228344bc564d4f97d8a158 diff --git a/trunk/fs/btrfs/disk-io.c b/trunk/fs/btrfs/disk-io.c index c79ddc756081..19b4db70dcb1 100644 --- a/trunk/fs/btrfs/disk-io.c +++ b/trunk/fs/btrfs/disk-io.c @@ -3589,16 +3589,13 @@ void btrfs_cleanup_one_transaction(struct btrfs_transaction *cur_trans, /* FIXME: cleanup wait for commit */ cur_trans->in_commit = 1; cur_trans->blocked = 1; - if (waitqueue_active(&root->fs_info->transaction_blocked_wait)) - wake_up(&root->fs_info->transaction_blocked_wait); + wake_up(&root->fs_info->transaction_blocked_wait); cur_trans->blocked = 0; - if (waitqueue_active(&root->fs_info->transaction_wait)) - wake_up(&root->fs_info->transaction_wait); + wake_up(&root->fs_info->transaction_wait); cur_trans->commit_done = 1; - if (waitqueue_active(&cur_trans->commit_wait)) - wake_up(&cur_trans->commit_wait); + wake_up(&cur_trans->commit_wait); btrfs_destroy_pending_snapshots(cur_trans); diff --git a/trunk/fs/btrfs/transaction.c b/trunk/fs/btrfs/transaction.c index 1791c6e3d834..59e0203bfb95 100644 --- a/trunk/fs/btrfs/transaction.c +++ b/trunk/fs/btrfs/transaction.c @@ -1221,6 +1221,10 @@ static void cleanup_transaction(struct btrfs_trans_handle *trans, spin_lock(&root->fs_info->trans_lock); list_del_init(&cur_trans->list); + if (cur_trans == root->fs_info->running_transaction) { + root->fs_info->running_transaction = NULL; + root->fs_info->trans_no_join = 0; + } spin_unlock(&root->fs_info->trans_lock); btrfs_cleanup_one_transaction(trans->transaction, root);