diff --git a/[refs] b/[refs] index a4fad06058c2..0dcfcafa1d91 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b90e5e02896406a6da28a376568003d14c06770 +refs/heads/master: 9837d8e982b7e87a7207f90618e45d460e196e6a diff --git a/trunk/fs/jbd2/transaction.c b/trunk/fs/jbd2/transaction.c index a0e41a4c080e..35ae096bed5d 100644 --- a/trunk/fs/jbd2/transaction.c +++ b/trunk/fs/jbd2/transaction.c @@ -517,12 +517,13 @@ void jbd2_journal_lock_updates(journal_t *journal) break; spin_lock(&transaction->t_handle_lock); + prepare_to_wait(&journal->j_wait_updates, &wait, + TASK_UNINTERRUPTIBLE); if (!atomic_read(&transaction->t_updates)) { spin_unlock(&transaction->t_handle_lock); + finish_wait(&journal->j_wait_updates, &wait); break; } - prepare_to_wait(&journal->j_wait_updates, &wait, - TASK_UNINTERRUPTIBLE); spin_unlock(&transaction->t_handle_lock); write_unlock(&journal->j_state_lock); schedule();