Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
journal-head.h
Go to the documentation of this file.
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
* This feild tracks the last transaction id in which this buffer
45
* has been cowed
46
* [jbd_lock_bh_state()]
47
*/
48
tid_t
b_cow_tid
;
49
50
/*
51
* Copy of the buffer data frozen for writing to the log.
52
* [jbd_lock_bh_state()]
53
*/
54
char
*
b_frozen_data
;
55
56
/*
57
* Pointer to a saved copy of the buffer containing no uncommitted
58
* deallocation references, so that allocations can avoid overwriting
59
* uncommitted deletes. [jbd_lock_bh_state()]
60
*/
61
char
*
b_committed_data
;
62
63
/*
64
* Pointer to the compound transaction which owns this buffer's
65
* metadata: either the running transaction or the committing
66
* transaction (if there is one). Only applies to buffers on a
67
* transaction's data or metadata journaling list.
68
* [j_list_lock] [jbd_lock_bh_state()]
69
* Either of these locks is enough for reading, both are needed for
70
* changes.
71
*/
72
transaction_t
*
b_transaction
;
73
74
/*
75
* Pointer to the running compound transaction which is currently
76
* modifying the buffer's metadata, if there was already a transaction
77
* committing it when the new transaction touched it.
78
* [t_list_lock] [jbd_lock_bh_state()]
79
*/
80
transaction_t
*
b_next_transaction
;
81
82
/*
83
* Doubly-linked list of buffers on a transaction's data, metadata or
84
* forget queue. [t_list_lock] [jbd_lock_bh_state()]
85
*/
86
struct
journal_head
*
b_tnext
, *
b_tprev
;
87
88
/*
89
* Pointer to the compound transaction against which this buffer
90
* is checkpointed. Only dirty buffers can be checkpointed.
91
* [j_list_lock]
92
*/
93
transaction_t
*
b_cp_transaction
;
94
95
/*
96
* Doubly-linked list of buffers still remaining to be flushed
97
* before an old transaction can be checkpointed.
98
* [j_list_lock]
99
*/
100
struct
journal_head
*
b_cpnext
, *
b_cpprev
;
101
102
/* Trigger type */
103
struct
jbd2_buffer_trigger_type *
b_triggers
;
104
105
/* Trigger type for the committing transaction's frozen data */
106
struct
jbd2_buffer_trigger_type *
b_frozen_triggers
;
107
};
108
109
#endif
/* JOURNAL_HEAD_H_INCLUDED */
Generated on Thu Jan 10 2013 14:51:43 for Linux Kernel by
1.8.2