We used LockDoc to derive locking rules for each member
of struct transaction_t.
Based on those results, we extended the existing documentation
by more members of struct inode, and updated the existing
documentation.

Signed-off-by: Alexander Lochmann <alexander.lochm...@tu-dortmund.de>
Signed-off-by: Horst Schirmeier <horst.schirme...@tu-dortmund.de>
---
 include/linux/jbd2.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index 0f919d5fe84f..72f689746340 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -534,6 +534,7 @@ struct transaction_chp_stats_s {
  * The transaction keeps track of all of the buffers modified by a
  * running transaction, and all of the buffers committed but not yet
  * flushed to home for finished transactions.
+ * (Locking Documentation improved by LockDoc)
  */
 
 /*
@@ -585,7 +586,8 @@ struct transaction_s
        }                       t_state;
 
        /*
-        * Where in the log does this transaction's commit start? [no locking]
+        * Where in the log does this transaction's commit start?
+        * [journal_t.j_state_lock]
         */
        unsigned long           t_log_start;
 
@@ -647,17 +649,17 @@ struct transaction_s
        unsigned long           t_max_wait;
 
        /*
-        * When transaction started
+        * When transaction started [journal_t.j_state_lock]
         */
        unsigned long           t_start;
 
        /*
-        * When commit was requested
+        * When commit was requested [journal_t.j_state_lock]
         */
        unsigned long           t_requested;
 
        /*
-        * Checkpointing stats [j_checkpoint_sem]
+        * Checkpointing stats [journal_t.j_list_lock]
         */
        struct transaction_chp_stats_s t_chp_stats;
 
-- 
2.20.1

Reply via email to