LCOV - code coverage report
Current view: top level - lkbce/include/linux - journal-head.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 3 100.0 %
Date: 2017-01-25 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  * include/linux/journal-head.h
       3             :  *
       4             :  * buffer_head fields for JBD
       5             :  *
       6             :  * 27 May 2001 Andrew Morton
       7             :  *      Created - pulled out of fs.h
       8             :  */
       9             : 
      10             : #ifndef JOURNAL_HEAD_H_INCLUDED
      11             : #define JOURNAL_HEAD_H_INCLUDED
      12             : 
      13           1 : typedef unsigned int            tid_t;          /* Unique transaction ID */
      14           2 : typedef struct transaction_s    transaction_t;  /* Compound transaction type */
      15           2 : 
      16             : 
      17             : struct buffer_head;
      18             : 
      19             : struct journal_head {
      20             :         /*
      21             :          * Points back to our buffer_head. [jbd_lock_bh_journal_head()]
      22             :          */
      23             :         struct buffer_head *b_bh;
      24             : 
      25             :         /*
      26             :          * Reference count - see description in journal.c
      27             :          * [jbd_lock_bh_journal_head()]
      28             :          */
      29             :         int b_jcount;
      30             : 
      31             :         /*
      32             :          * Journalling list for this buffer [jbd_lock_bh_state()]
      33             :          */
      34             :         unsigned b_jlist;
      35             : 
      36             :         /*
      37             :          * This flag signals the buffer has been modified by
      38             :          * the currently running transaction
      39             :          * [jbd_lock_bh_state()]
      40             :          */
      41             :         unsigned b_modified;
      42             : 
      43             :         /*
      44             :          * Copy of the buffer data frozen for writing to the log.
      45             :          * [jbd_lock_bh_state()]
      46             :          */
      47             :         char *b_frozen_data;
      48             : 
      49             :         /*
      50             :          * Pointer to a saved copy of the buffer containing no uncommitted
      51             :          * deallocation references, so that allocations can avoid overwriting
      52             :          * uncommitted deletes. [jbd_lock_bh_state()]
      53             :          */
      54             :         char *b_committed_data;
      55             : 
      56             :         /*
      57             :          * Pointer to the compound transaction which owns this buffer's
      58             :          * metadata: either the running transaction or the committing
      59             :          * transaction (if there is one).  Only applies to buffers on a
      60             :          * transaction's data or metadata journaling list.
      61             :          * [j_list_lock] [jbd_lock_bh_state()]
      62             :          */
      63             :         transaction_t *b_transaction;
      64             : 
      65             :         /*
      66             :          * Pointer to the running compound transaction which is currently
      67             :          * modifying the buffer's metadata, if there was already a transaction
      68             :          * committing it when the new transaction touched it.
      69             :          * [t_list_lock] [jbd_lock_bh_state()]
      70             :          */
      71             :         transaction_t *b_next_transaction;
      72             : 
      73             :         /*
      74             :          * Doubly-linked list of buffers on a transaction's data, metadata or
      75             :          * forget queue. [t_list_lock] [jbd_lock_bh_state()]
      76             :          */
      77             :         struct journal_head *b_tnext, *b_tprev;
      78             : 
      79             :         /*
      80             :          * Pointer to the compound transaction against which this buffer
      81             :          * is checkpointed.  Only dirty buffers can be checkpointed.
      82             :          * [j_list_lock]
      83             :          */
      84             :         transaction_t *b_cp_transaction;
      85             : 
      86             :         /*
      87             :          * Doubly-linked list of buffers still remaining to be flushed
      88             :          * before an old transaction can be checkpointed.
      89             :          * [j_list_lock]
      90             :          */
      91             :         struct journal_head *b_cpnext, *b_cpprev;
      92             : 
      93             :         /* Trigger type */
      94             :         struct jbd2_buffer_trigger_type *b_triggers;
      95             : 
      96             :         /* Trigger type for the committing transaction's frozen data */
      97             :         struct jbd2_buffer_trigger_type *b_frozen_triggers;
      98             : };
      99             : 
     100             : #endif          /* JOURNAL_HEAD_H_INCLUDED */

Generated by: LCOV version 1.10