journal-head.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
- /*
- * include/linux/journal-head.h
- *
- * buffer_head fields for JBD
- *
- * 27 May 2001 ANdrew Morton <andrewm@uow.edu.au>
- * Created - pulled out of fs.h
- */
- #ifndef JOURNAL_HEAD_H_INCLUDED
- #define JOURNAL_HEAD_H_INCLUDED
- typedef unsigned int tid_t; /* Unique transaction ID */
- typedef struct transaction_s transaction_t; /* Compound transaction type */
- struct buffer_head;
- struct journal_head {
- #ifndef CONFIG_JBD_UNIFIED_BUFFERS
- /* Points back to our buffer_head. */
- struct buffer_head *b_bh;
- #endif
- /* Reference count - see description in journal.c */
- int b_jcount;
- /* Journaling list for this buffer */
- unsigned b_jlist;
- /* Copy of the buffer data frozen for writing to the log. */
- char * b_frozen_data;
- /* Pointer to a saved copy of the buffer containing no
- uncommitted deallocation references, so that allocations can
- avoid overwriting uncommitted deletes. */
- char * b_committed_data;
- /* Pointer to the compound transaction which owns this buffer's
- metadata: either the running transaction or the committing
- transaction (if there is one). Only applies to buffers on a
- transaction's data or metadata journaling list. */
- /* Protected by journal_datalist_lock */
- transaction_t * b_transaction;
-
- /* Pointer to the running compound transaction which is
- currently modifying the buffer's metadata, if there was
- already a transaction committing it when the new transaction
- touched it. */
- transaction_t * b_next_transaction;
-
- /* Doubly-linked list of buffers on a transaction's data,
- metadata or forget queue. */
- /* Protected by journal_datalist_lock */
- struct journal_head *b_tnext, *b_tprev;
- /*
- * Pointer to the compound transaction against which this buffer
- * is checkpointed. Only dirty buffers can be checkpointed.
- */
- /* Protected by journal_datalist_lock */
- transaction_t * b_cp_transaction;
-
- /*
- * Doubly-linked list of buffers still remaining to be flushed
- * before an old transaction can be checkpointed.
- */
- /* Protected by journal_datalist_lock */
- struct journal_head *b_cpnext, *b_cpprev;
- };
- #endif /* JOURNAL_HEAD_H_INCLUDED */