1STRUCT JOURNAL_S(9)        The Linux Journalling API       STRUCT JOURNAL_S(9)
2
3
4

NAME

6       struct_journal_s - this is the concrete type associated with journal_t.
7

SYNOPSIS

9       struct journal_s {
10         unsigned long j_flags;
11         int j_errno;
12         struct buffer_head * j_sb_buffer;
13         journal_superblock_t * j_superblock;
14         int j_format_version;
15         spinlock_t j_state_lock;
16         int j_barrier_count;
17         transaction_t * j_running_transaction;
18         transaction_t * j_committing_transaction;
19         transaction_t * j_checkpoint_transactions;
20         wait_queue_head_t j_wait_transaction_locked;
21         wait_queue_head_t j_wait_logspace;
22         wait_queue_head_t j_wait_done_commit;
23         wait_queue_head_t j_wait_checkpoint;
24         wait_queue_head_t j_wait_commit;
25         wait_queue_head_t j_wait_updates;
26         struct mutex j_checkpoint_mutex;
27         unsigned int j_head;
28         unsigned int j_tail;
29         unsigned int j_free;
30         unsigned int j_first;
31         unsigned int j_last;
32         struct block_device * j_dev;
33         int j_blocksize;
34         unsigned int j_blk_offset;
35         struct block_device * j_fs_dev;
36         unsigned int j_maxlen;
37         spinlock_t j_list_lock;
38         struct inode * j_inode;
39         tid_t j_tail_sequence;
40         tid_t j_transaction_sequence;
41         tid_t j_commit_sequence;
42         tid_t j_commit_request;
43         tid_t j_commit_waited;
44         __u8 j_uuid[16];
45         struct task_struct * j_task;
46         int j_max_transaction_buffers;
47         unsigned long j_commit_interval;
48         struct timer_list j_commit_timer;
49         spinlock_t j_revoke_lock;
50         struct jbd_revoke_table_s * j_revoke;
51         struct jbd_revoke_table_s * j_revoke_table[2];
52         struct buffer_head ** j_wbuf;
53         int j_wbufsize;
54         pid_t j_last_sync_writer;
55         u64 j_average_commit_time;
56         void * j_private;
57       };
58

MEMBERS

60       j_flags
61           General journaling state flags
62
63       j_errno
64           Is there an outstanding uncleared error on the journal (from a
65           prior abort)?
66
67       j_sb_buffer
68           First part of superblock buffer
69
70       j_superblock
71           Second part of superblock buffer
72
73       j_format_version
74           Version of the superblock format
75
76       j_state_lock
77           Protect the various scalars in the journal
78
79       j_barrier_count
80           Number of processes waiting to create a barrier lock
81
82       j_running_transaction
83           The current running transaction..
84
85       j_committing_transaction
86           the transaction we are pushing to disk
87
88       j_checkpoint_transactions
89           a linked circular list of all transactions waiting for
90           checkpointing
91
92       j_wait_transaction_locked
93           Wait queue for waiting for a locked transaction to start
94           committing, or for a barrier lock to be released
95
96       j_wait_logspace
97           Wait queue for waiting for checkpointing to complete
98
99       j_wait_done_commit
100           Wait queue for waiting for commit to complete
101
102       j_wait_checkpoint
103           Wait queue to trigger checkpointing
104
105       j_wait_commit
106           Wait queue to trigger commit
107
108       j_wait_updates
109           Wait queue to wait for updates to complete
110
111       j_checkpoint_mutex
112           Mutex for locking against concurrent checkpoints
113
114       j_head
115           Journal head - identifies the first unused block in the journal
116
117       j_tail
118           Journal tail - identifies the oldest still-used block in the
119           journal.
120
121       j_free
122           Journal free - how many free blocks are there in the journal?
123
124       j_first
125           The block number of the first usable block
126
127       j_last
128           The block number one beyond the last usable block
129
130       j_dev
131           Device where we store the journal
132
133       j_blocksize
134           blocksize for the location where we store the journal.
135
136       j_blk_offset
137           starting block offset for into the device where we store the
138           journal
139
140       j_fs_dev
141           Device which holds the client fs. For internal journal this will be
142           equal to j_dev
143
144       j_maxlen
145           Total maximum capacity of the journal region on disk.
146
147       j_list_lock
148           Protects the buffer lists and internal buffer state.
149
150       j_inode
151           Optional inode where we store the journal. If present, all journal
152           block numbers are mapped into this inode via bmap.
153
154       j_tail_sequence
155           Sequence number of the oldest transaction in the log
156
157       j_transaction_sequence
158           Sequence number of the next transaction to grant
159
160       j_commit_sequence
161           Sequence number of the most recently committed transaction
162
163       j_commit_request
164           Sequence number of the most recent transaction wanting commit
165
166       j_commit_waited
167           Sequence number of the most recent transaction someone is waiting
168           for to commit.
169
170       j_uuid[16]
171           Uuid of client object.
172
173       j_task
174           Pointer to the current commit thread for this journal
175
176       j_max_transaction_buffers
177           Maximum number of metadata buffers to allow in a single compound
178           commit transaction
179
180       j_commit_interval
181           What is the maximum transaction lifetime before we begin a commit?
182
183       j_commit_timer
184           The timer used to wakeup the commit thread
185
186       j_revoke_lock
187           Protect the revoke table
188
189       j_revoke
190           The revoke table - maintains the list of revoked blocks in the
191           current transaction.
192
193       j_revoke_table[2]
194           alternate revoke tables for j_revoke
195
196       j_wbuf
197           array of buffer_heads for journal_commit_transaction
198
199       j_wbufsize
200           maximum number of buffer_heads allowed in j_wbuf, the number that
201           will fit in j_blocksize
202
203       j_last_sync_writer
204           most recent pid which did a synchronous write
205
206       j_average_commit_time
207           the average amount of time in nanoseconds it takes to commit a
208           transaction to the disk.
209
210       j_private
211           An opaque pointer to fs-private information.
212

AUTHORS

214       Roger Gammans <rgammans@computer-surgery.co.uk>
215           Author.
216
217       Stephen Tweedie <sct@redhat.com>
218           Author.
219
221Kernel Hackers Manual 3.10         June 2019               STRUCT JOURNAL_S(9)
Impressum