Skip to content

Commit

Permalink
jbd: relocate assert after state lock in journal_commit_transaction()
Browse files Browse the repository at this point in the history
The state lock is taken after we are doing an assert on the state
value, not before.  So we might in fact be doing an assert on a
transient value.  Ensure the state check is within the scope of
the state lock being taken.

Backport of jbd2 commit 3ca841c
("jbd2: relocate assert after state lock in journal_commit_transaction()")

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Jan Kara <jack@suse.cz>
  • Loading branch information
Paul Gortmaker authored and Jan Kara committed Aug 1, 2013
1 parent e729eac commit a91de85
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion fs/jbd/commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -340,13 +340,13 @@ void journal_commit_transaction(journal_t *journal)
J_ASSERT(journal->j_committing_transaction == NULL);

commit_transaction = journal->j_running_transaction;
J_ASSERT(commit_transaction->t_state == T_RUNNING);

trace_jbd_start_commit(journal, commit_transaction);
jbd_debug(1, "JBD: starting commit of transaction %d\n",
commit_transaction->t_tid);

spin_lock(&journal->j_state_lock);
J_ASSERT(commit_transaction->t_state == T_RUNNING);
commit_transaction->t_state = T_LOCKED;

trace_jbd_commit_locking(journal, commit_transaction);
Expand Down

0 comments on commit a91de85

Please sign in to comment.