diff options
Diffstat (limited to 'fs/jbd')
-rw-r--r-- | fs/jbd/checkpoint.c | 2 | ||||
-rw-r--r-- | fs/jbd/commit.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/fs/jbd/checkpoint.c b/fs/jbd/checkpoint.c index cb3cef525c..e6265a0b56 100644 --- a/fs/jbd/checkpoint.c +++ b/fs/jbd/checkpoint.c | |||
@@ -338,7 +338,7 @@ restart: | |||
338 | * done (maybe it's a new transaction, but it fell at the same | 338 | * done (maybe it's a new transaction, but it fell at the same |
339 | * address). | 339 | * address). |
340 | */ | 340 | */ |
341 | if (journal->j_checkpoint_transactions == transaction || | 341 | if (journal->j_checkpoint_transactions == transaction && |
342 | transaction->t_tid == this_tid) { | 342 | transaction->t_tid == this_tid) { |
343 | int batch_count = 0; | 343 | int batch_count = 0; |
344 | struct buffer_head *bhs[NR_BATCH]; | 344 | struct buffer_head *bhs[NR_BATCH]; |
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c index 002ad2bbc7..29e62d98ba 100644 --- a/fs/jbd/commit.c +++ b/fs/jbd/commit.c | |||
@@ -829,7 +829,8 @@ restart_loop: | |||
829 | journal->j_committing_transaction = NULL; | 829 | journal->j_committing_transaction = NULL; |
830 | spin_unlock(&journal->j_state_lock); | 830 | spin_unlock(&journal->j_state_lock); |
831 | 831 | ||
832 | if (commit_transaction->t_checkpoint_list == NULL) { | 832 | if (commit_transaction->t_checkpoint_list == NULL && |
833 | commit_transaction->t_checkpoint_io_list == NULL) { | ||
833 | __journal_drop_transaction(journal, commit_transaction); | 834 | __journal_drop_transaction(journal, commit_transaction); |
834 | } else { | 835 | } else { |
835 | if (journal->j_checkpoint_transactions == NULL) { | 836 | if (journal->j_checkpoint_transactions == NULL) { |