diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2009-06-15 21:08:07 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-06-15 21:08:07 -0400 |
commit | 7eef4091a653c243a87e5375c54504cc03bec4d8 (patch) | |
tree | f65b77f830b2c8f7d014512badfef5df0d591ee9 /fs/jbd/commit.c | |
parent | 0a93a47f042c459f0f46942c3a920e3c81878031 (diff) | |
parent | 07a2039b8eb0af4ff464efd3dfd95de5c02648c6 (diff) |
Merge commit 'v2.6.30' into for-2.6.31
Diffstat (limited to 'fs/jbd/commit.c')
-rw-r--r-- | fs/jbd/commit.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c index a8e8513a78a..618e21c0b7a 100644 --- a/fs/jbd/commit.c +++ b/fs/jbd/commit.c | |||
@@ -241,7 +241,7 @@ write_out_data: | |||
241 | spin_lock(&journal->j_list_lock); | 241 | spin_lock(&journal->j_list_lock); |
242 | } | 242 | } |
243 | /* Someone already cleaned up the buffer? */ | 243 | /* Someone already cleaned up the buffer? */ |
244 | if (!buffer_jbd(bh) | 244 | if (!buffer_jbd(bh) || bh2jh(bh) != jh |
245 | || jh->b_transaction != commit_transaction | 245 | || jh->b_transaction != commit_transaction |
246 | || jh->b_jlist != BJ_SyncData) { | 246 | || jh->b_jlist != BJ_SyncData) { |
247 | jbd_unlock_bh_state(bh); | 247 | jbd_unlock_bh_state(bh); |
@@ -478,7 +478,9 @@ void journal_commit_transaction(journal_t *journal) | |||
478 | spin_lock(&journal->j_list_lock); | 478 | spin_lock(&journal->j_list_lock); |
479 | continue; | 479 | continue; |
480 | } | 480 | } |
481 | if (buffer_jbd(bh) && jh->b_jlist == BJ_Locked) { | 481 | if (buffer_jbd(bh) && bh2jh(bh) == jh && |
482 | jh->b_transaction == commit_transaction && | ||
483 | jh->b_jlist == BJ_Locked) { | ||
482 | __journal_unfile_buffer(jh); | 484 | __journal_unfile_buffer(jh); |
483 | jbd_unlock_bh_state(bh); | 485 | jbd_unlock_bh_state(bh); |
484 | journal_remove_journal_head(bh); | 486 | journal_remove_journal_head(bh); |
@@ -502,7 +504,7 @@ void journal_commit_transaction(journal_t *journal) | |||
502 | err = 0; | 504 | err = 0; |
503 | } | 505 | } |
504 | 506 | ||
505 | journal_write_revoke_records(journal, commit_transaction); | 507 | journal_write_revoke_records(journal, commit_transaction, write_op); |
506 | 508 | ||
507 | /* | 509 | /* |
508 | * If we found any dirty or locked buffers, then we should have | 510 | * If we found any dirty or locked buffers, then we should have |