diff options
author | Zhao Lei <zhaolei@cn.fujitsu.com> | 2010-03-25 08:35:14 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2010-03-30 21:19:08 -0400 |
commit | 471fa17dff556ad38caf26de097c0630530d8cbe (patch) | |
tree | 1a89bf8fa9eb34df3512c1216d5a92a29327a98d | |
parent | 90d2c51dbb4db05c040bc7db264bb7ab35e35455 (diff) |
Btrfs: Remove unnecessary finish_wait() in wait_current_trans()
We only need to call finish_wait() after wait loop.
By the way, this patch makes code of waiting loop similar to
example in wait.h(no functional change)
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r-- | fs/btrfs/transaction.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index 2d654c1c794d..43054285f638 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c | |||
@@ -147,18 +147,13 @@ static void wait_current_trans(struct btrfs_root *root) | |||
147 | while (1) { | 147 | while (1) { |
148 | prepare_to_wait(&root->fs_info->transaction_wait, &wait, | 148 | prepare_to_wait(&root->fs_info->transaction_wait, &wait, |
149 | TASK_UNINTERRUPTIBLE); | 149 | TASK_UNINTERRUPTIBLE); |
150 | if (cur_trans->blocked) { | 150 | if (!cur_trans->blocked) |
151 | mutex_unlock(&root->fs_info->trans_mutex); | ||
152 | schedule(); | ||
153 | mutex_lock(&root->fs_info->trans_mutex); | ||
154 | finish_wait(&root->fs_info->transaction_wait, | ||
155 | &wait); | ||
156 | } else { | ||
157 | finish_wait(&root->fs_info->transaction_wait, | ||
158 | &wait); | ||
159 | break; | 151 | break; |
160 | } | 152 | mutex_unlock(&root->fs_info->trans_mutex); |
153 | schedule(); | ||
154 | mutex_lock(&root->fs_info->trans_mutex); | ||
161 | } | 155 | } |
156 | finish_wait(&root->fs_info->transaction_wait, &wait); | ||
162 | put_transaction(cur_trans); | 157 | put_transaction(cur_trans); |
163 | } | 158 | } |
164 | } | 159 | } |