diff options
author | Mingming Cao <cmm@us.ibm.com> | 2008-05-14 19:05:41 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-14 22:11:14 -0400 |
commit | 772279c5f1dceb58d451dca94b557fd89b1ce890 (patch) | |
tree | fa547bae10644896db94514db052443c6d903533 | |
parent | c3723ca3874a8fc2218c4726d57e3a7da9e83e47 (diff) |
jbd: need to hold j_state_lock to updates to transaction t_state to T_COMMIT
Updating the current transaction's t_state is protected by j_state_lock. We
need to do the same when updating the t_state to T_COMMIT.
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Acked-by: Jan Kara <jack@ucw.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/jbd/commit.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c index cd931ef1f000..5a8ca61498ca 100644 --- a/fs/jbd/commit.c +++ b/fs/jbd/commit.c | |||
@@ -470,7 +470,9 @@ void journal_commit_transaction(journal_t *journal) | |||
470 | * transaction! Now comes the tricky part: we need to write out | 470 | * transaction! Now comes the tricky part: we need to write out |
471 | * metadata. Loop over the transaction's entire buffer list: | 471 | * metadata. Loop over the transaction's entire buffer list: |
472 | */ | 472 | */ |
473 | spin_lock(&journal->j_state_lock); | ||
473 | commit_transaction->t_state = T_COMMIT; | 474 | commit_transaction->t_state = T_COMMIT; |
475 | spin_unlock(&journal->j_state_lock); | ||
474 | 476 | ||
475 | J_ASSERT(commit_transaction->t_nr_buffers <= | 477 | J_ASSERT(commit_transaction->t_nr_buffers <= |
476 | commit_transaction->t_outstanding_credits); | 478 | commit_transaction->t_outstanding_credits); |