diff options
-rw-r--r-- | fs/jbd/commit.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c index f1ea861b9929..d6a6659f3e46 100644 --- a/fs/jbd/commit.c +++ b/fs/jbd/commit.c | |||
@@ -518,9 +518,10 @@ void journal_commit_transaction(journal_t *journal) | |||
518 | jh = commit_transaction->t_buffers; | 518 | jh = commit_transaction->t_buffers; |
519 | 519 | ||
520 | /* If we're in abort mode, we just un-journal the buffer and | 520 | /* If we're in abort mode, we just un-journal the buffer and |
521 | release it for background writing. */ | 521 | release it. */ |
522 | 522 | ||
523 | if (is_journal_aborted(journal)) { | 523 | if (is_journal_aborted(journal)) { |
524 | clear_buffer_jbddirty(jh2bh(jh)); | ||
524 | JBUFFER_TRACE(jh, "journal is aborting: refile"); | 525 | JBUFFER_TRACE(jh, "journal is aborting: refile"); |
525 | journal_refile_buffer(journal, jh); | 526 | journal_refile_buffer(journal, jh); |
526 | /* If that was the last one, we need to clean up | 527 | /* If that was the last one, we need to clean up |
@@ -855,6 +856,8 @@ restart_loop: | |||
855 | if (buffer_jbddirty(bh)) { | 856 | if (buffer_jbddirty(bh)) { |
856 | JBUFFER_TRACE(jh, "add to new checkpointing trans"); | 857 | JBUFFER_TRACE(jh, "add to new checkpointing trans"); |
857 | __journal_insert_checkpoint(jh, commit_transaction); | 858 | __journal_insert_checkpoint(jh, commit_transaction); |
859 | if (is_journal_aborted(journal)) | ||
860 | clear_buffer_jbddirty(bh); | ||
858 | JBUFFER_TRACE(jh, "refile for checkpoint writeback"); | 861 | JBUFFER_TRACE(jh, "refile for checkpoint writeback"); |
859 | __journal_refile_buffer(jh); | 862 | __journal_refile_buffer(jh); |
860 | jbd_unlock_bh_state(bh); | 863 | jbd_unlock_bh_state(bh); |