struct journal_s — The journal_s type is the concrete type associated with journal_t.
struct journal_s { unsigned long j_flags; int j_errno; struct buffer_head * j_sb_buffer; journal_superblock_t * j_superblock; int j_format_version; rwlock_t j_state_lock; int j_barrier_count; struct mutex j_barrier; transaction_t * j_running_transaction; transaction_t * j_committing_transaction; transaction_t * j_checkpoint_transactions; wait_queue_head_t j_wait_transaction_locked; wait_queue_head_t j_wait_done_commit; wait_queue_head_t j_wait_commit; wait_queue_head_t j_wait_updates; wait_queue_head_t j_wait_reserved; struct mutex j_checkpoint_mutex; unsigned long j_head; unsigned long j_tail; unsigned long j_free; unsigned long j_first; unsigned long j_last; struct block_device * j_dev; int j_blocksize; unsigned long long j_blk_offset; struct block_device * j_fs_dev; unsigned int j_maxlen; atomic_t j_reserved_credits; spinlock_t j_list_lock; struct inode * j_inode; tid_t j_tail_sequence; tid_t j_transaction_sequence; tid_t j_commit_sequence; tid_t j_commit_request; __u8 j_uuid; struct task_struct * j_task; int j_max_transaction_buffers; unsigned long j_commit_interval; struct timer_list j_commit_timer; spinlock_t j_revoke_lock; struct jbd2_revoke_table_s * j_revoke; struct jbd2_revoke_table_s * j_revoke_table; struct buffer_head ** j_wbuf; int j_wbufsize; pid_t j_last_sync_writer; spinlock_t j_history_lock; struct proc_dir_entry * j_proc_entry; struct transaction_stats_s j_stats; void * j_private; #ifdef CONFIG_DEBUG_LOCK_ALLOC struct lockdep_map j_trans_commit_map; #endif };
unsigned long j_flags
General journaling state flags
int j_errno
Is there an outstanding uncleared error on the journal (from a prior abort)?
struct buffer_head * j_sb_buffer
First part of superblock buffer
journal_superblock_t * j_superblock
Second part of superblock buffer
int j_format_version
Version of the superblock format
rwlock_t j_state_lock
Protect the various scalars in the journal
int j_barrier_count
Number of processes waiting to create a barrier lock
struct mutex j_barrier
The barrier lock itself
transaction_t * j_running_transaction
The current running transaction..
transaction_t * j_committing_transaction
the transaction we are pushing to disk
transaction_t * j_checkpoint_transactions
a linked circular list of all transactions waiting for checkpointing
wait_queue_head_t j_wait_transaction_locked
Wait queue for waiting for a locked transaction to start committing, or for a barrier lock to be released
wait_queue_head_t j_wait_done_commit
Wait queue for waiting for commit to complete
wait_queue_head_t j_wait_commit
Wait queue to trigger commit
wait_queue_head_t j_wait_updates
Wait queue to wait for updates to complete
wait_queue_head_t j_wait_reserved
Wait queue to wait for reserved buffer credits to drop
struct mutex j_checkpoint_mutex
Mutex for locking against concurrent checkpoints
unsigned long j_head
Journal head - identifies the first unused block in the journal
unsigned long j_tail
Journal tail - identifies the oldest still-used block in the journal.
unsigned long j_free
Journal free - how many free blocks are there in the journal?
unsigned long j_first
The block number of the first usable block
unsigned long j_last
The block number one beyond the last usable block
struct block_device * j_dev
Device where we store the journal
int j_blocksize
blocksize for the location where we store the journal.
unsigned long long j_blk_offset
starting block offset for into the device where we store the journal
struct block_device * j_fs_dev
Device which holds the client fs. For internal journal this will be equal to j_dev
unsigned int j_maxlen
Total maximum capacity of the journal region on disk.
atomic_t j_reserved_credits
Number of buffers reserved from the running transaction
spinlock_t j_list_lock
Protects the buffer lists and internal buffer state.
struct inode * j_inode
Optional inode where we store the journal. If present, all journal
block numbers are mapped into this inode via bmap
.
tid_t j_tail_sequence
Sequence number of the oldest transaction in the log
tid_t j_transaction_sequence
Sequence number of the next transaction to grant
tid_t j_commit_sequence
Sequence number of the most recently committed transaction
tid_t j_commit_request
Sequence number of the most recent transaction wanting commit
__u8 j_uuid
Uuid of client object.
struct task_struct * j_task
Pointer to the current commit thread for this journal
int j_max_transaction_buffers
Maximum number of metadata buffers to allow in a single compound commit transaction
unsigned long j_commit_interval
What is the maximum transaction lifetime before we begin a commit?
struct timer_list j_commit_timer
The timer used to wakeup the commit thread
spinlock_t j_revoke_lock
Protect the revoke table
struct jbd2_revoke_table_s * j_revoke
The revoke table - maintains the list of revoked blocks in the current transaction.
struct jbd2_revoke_table_s * j_revoke_table
alternate revoke tables for j_revoke
struct buffer_head ** j_wbuf
array of buffer_heads for jbd2_journal_commit_transaction
int j_wbufsize
maximum number of buffer_heads allowed in j_wbuf, the number that will fit in j_blocksize
pid_t j_last_sync_writer
most recent pid which did a synchronous write
spinlock_t j_history_lock
Protect the transactions statistics history
struct proc_dir_entry * j_proc_entry
procfs entry for the jbd statistics directory
struct transaction_stats_s j_stats
Overall statistics
void * j_private
An opaque pointer to fs-private information.
struct lockdep_map j_trans_commit_map
Lockdep entity to track transaction commit dependencies