--- fs/jbd/journal.c 2004/11/09 23:06:35 1.1 +++ fs/jbd/journal.c 2004/11/09 23:12:23 @@ -153,6 +153,9 @@ spin_lock(&journal->j_state_lock); loop: + if (journal->j_flags & JFS_UNMOUNT) + goto end_loop; + jbd_debug(1, "commit_sequence=%d, commit_request=%d\n", journal->j_commit_sequence, journal->j_commit_request); @@ -162,7 +165,7 @@ del_timer_sync(journal->j_commit_timer); journal_commit_transaction(journal); spin_lock(&journal->j_state_lock); - goto end_loop; + goto loop; } wake_up(&journal->j_wait_done_commit); @@ -210,10 +213,9 @@ journal->j_commit_request = transaction->t_tid; jbd_debug(1, "woke because of timeout\n"); } -end_loop: - if (!(journal->j_flags & JFS_UNMOUNT)) - goto loop; + goto loop; +end_loop: spin_unlock(&journal->j_state_lock); del_timer_sync(journal->j_commit_timer); journal->j_task = NULL;