Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  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 typedef unsigned int            tid_t;          /* Unique transaction ID */
 14 typedef struct transaction_s    transaction_t;  /* Compound transaction type */
 15 
 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 */
101 
  This page was automatically generated by the LXR engine.