summaryrefslogtreecommitdiff
path: root/include/linux/journal-head.h
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2012-03-14 06:45:25 +0400
committerTheodore Ts'o <tytso@mit.edu>2012-03-14 06:45:25 +0400
commit932bb305ba2a01cd62809644d569f004e77a4355 (patch)
treef03c1389c2902285e7e964210729bbbf2505d607 /include/linux/journal-head.h
parentc254c9ec14d5c418c8f36ea7573edae2470a1dc1 (diff)
downloadlinux-932bb305ba2a01cd62809644d569f004e77a4355.tar.xz
jbd2: remove bh_state lock from checkpointing code
All accesses to checkpointing entries in journal_head are protected by j_list_lock. Thus __jbd2_journal_remove_checkpoint() doesn't really need bh_state lock. Also the only part of journal head that the rest of checkpointing code needs to check is jh->b_transaction which is safe to read under j_list_lock. So we can safely remove bh_state lock from all of checkpointing code which makes it considerably prettier. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'include/linux/journal-head.h')
-rw-r--r--include/linux/journal-head.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/journal-head.h b/include/linux/journal-head.h
index 423cb6d78ee0..c18b46f8aeeb 100644
--- a/include/linux/journal-head.h
+++ b/include/linux/journal-head.h
@@ -66,6 +66,8 @@ struct journal_head {
* transaction (if there is one). Only applies to buffers on a
* transaction's data or metadata journaling list.
* [j_list_lock] [jbd_lock_bh_state()]
+ * Either of these locks is enough for reading, both are needed for
+ * changes.
*/
transaction_t *b_transaction;