author: Jan Kara <jack@suse.cz> 2008-01-28 23:58:27 -0500
committer: Theodore Ts'o <tytso@mit.edu> 2008-01-28 23:58:27 -0500
commit: f5a7a6b0d9b6af7d46124ed3f6b3995225cb62d0
parent: 36df53f4a3e445175fc1e9d7f433599482ec6d7f
Commit Summary:
Diffstat:
1 file changed, 4 insertions, 4 deletions
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 6986f334c643..39b5cee3dd8a 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -867,10 +867,10 @@ restart_loop:
}
spin_unlock(&journal->j_list_lock);
/*
- * This is a bit sleazy. We borrow j_list_lock to protect
- * journal->j_committing_transaction in __jbd2_journal_remove_checkpoint.
- * Really, __jbd2_journal_remove_checkpoint should be using j_state_lock but
- * it's a bit hassle to hold that across __jbd2_journal_remove_checkpoint
+ * This is a bit sleazy. We use j_list_lock to protect transition
+ * of a transaction into T_FINISHED state and calling
+ * __jbd2_journal_drop_transaction(). Otherwise we could race with
+ * other checkpointing code processing the transaction...
*/
spin_lock(&journal->j_state_lock);
spin_lock(&journal->j_list_lock);