diff options
author | Mingming Cao <cmm@us.ibm.com> | 2008-05-15 14:46:17 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-05-15 14:46:17 -0400 |
commit | 02c471cb17203c748e9bc87003052c1f46e5df69 (patch) | |
tree | a9d389f614d8d9d230920f6cf258f4d640a44662 | |
parent | 519deca0496a4df07d15acf3181ca5d573bffdec (diff) |
jbd2: update transaction t_state to T_COMMIT fix
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.
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r-- | fs/jbd2/commit.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c index e0139786f717..4d99685fdce4 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c | |||
@@ -560,7 +560,9 @@ void jbd2_journal_commit_transaction(journal_t *journal) | |||
560 | * transaction! Now comes the tricky part: we need to write out | 560 | * transaction! Now comes the tricky part: we need to write out |
561 | * metadata. Loop over the transaction's entire buffer list: | 561 | * metadata. Loop over the transaction's entire buffer list: |
562 | */ | 562 | */ |
563 | spin_lock(&journal->j_state_lock); | ||
563 | commit_transaction->t_state = T_COMMIT; | 564 | commit_transaction->t_state = T_COMMIT; |
565 | spin_unlock(&journal->j_state_lock); | ||
564 | 566 | ||
565 | stats.u.run.rs_logging = jiffies; | 567 | stats.u.run.rs_logging = jiffies; |
566 | stats.u.run.rs_flushing = jbd2_time_diff(stats.u.run.rs_flushing, | 568 | stats.u.run.rs_flushing = jbd2_time_diff(stats.u.run.rs_flushing, |