From: Mingming Cao Date: Wed, 14 May 2008 23:05:41 +0000 (-0700) Subject: jbd: need to hold j_state_lock to updates to transaction t_state to T_COMMIT X-Git-Tag: v2.6.26-rc3~48 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=772279c5f1dceb58d451dca94b557fd89b1ce890;p=linux-2.6-omap-h63xx.git 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 Acked-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c index cd931ef1f00..5a8ca61498c 100644 --- a/fs/jbd/commit.c +++ b/fs/jbd/commit.c @@ -470,7 +470,9 @@ void journal_commit_transaction(journal_t *journal) * transaction! Now comes the tricky part: we need to write out * metadata. Loop over the transaction's entire buffer list: */ + spin_lock(&journal->j_state_lock); commit_transaction->t_state = T_COMMIT; + spin_unlock(&journal->j_state_lock); J_ASSERT(commit_transaction->t_nr_buffers <= commit_transaction->t_outstanding_credits);