journal_sRegular
4.4: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
4.8: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
4.10: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
4.13: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
4.15: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
4.18: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
5.0: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
5.3: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
5.4: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
5.8: ✅struct journal_s {
long unsigned int j_flags;
int j_errno;
struct mutex j_abort_mutex;
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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
5.11: ✅struct journal_s {
long unsigned int j_flags;
int j_errno;
struct mutex j_abort_mutex;
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;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
long unsigned int j_fc_first;
long unsigned int j_fc_off;
long unsigned int j_fc_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
unsigned int j_total_len;
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
void (*j_fc_cleanup_callback)(struct journal_s *, int);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
};
5.13: ✅struct journal_s {
long unsigned int j_flags;
int j_errno;
struct mutex j_abort_mutex;
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;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
long unsigned int j_fc_first;
long unsigned int j_fc_off;
long unsigned int j_fc_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
unsigned int j_total_len;
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
void (*j_fc_cleanup_callback)(struct journal_s *, int);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
};
5.15: ✅struct journal_s {
long unsigned int j_flags;
long unsigned int j_atomic_flags;
int j_errno;
struct mutex j_abort_mutex;
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;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head * j_chkpt_bhs[64];
struct shrinker j_shrinker;
struct percpu_counter j_checkpoint_jh_count;
transaction_t *j_shrink_transaction;
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
long unsigned int j_fc_first;
long unsigned int j_fc_off;
long unsigned int j_fc_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
unsigned int j_total_len;
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
};
5.19: ✅struct journal_s {
long unsigned int j_flags;
long unsigned int j_atomic_flags;
int j_errno;
struct mutex j_abort_mutex;
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;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head * j_chkpt_bhs[64];
struct shrinker j_shrinker;
struct percpu_counter j_checkpoint_jh_count;
transaction_t *j_shrink_transaction;
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
long unsigned int j_fc_first;
long unsigned int j_fc_off;
long unsigned int j_fc_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
unsigned int j_total_len;
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
};
6.2: ✅struct journal_s {
long unsigned int j_flags;
long unsigned int j_atomic_flags;
int j_errno;
struct mutex j_abort_mutex;
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;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head * j_chkpt_bhs[64];
struct shrinker j_shrinker;
struct percpu_counter j_checkpoint_jh_count;
transaction_t *j_shrink_transaction;
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
long unsigned int j_fc_first;
long unsigned int j_fc_off;
long unsigned int j_fc_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
unsigned int j_total_len;
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
};
6.5: ✅struct journal_s {
long unsigned int j_flags;
long unsigned int j_atomic_flags;
int j_errno;
struct mutex j_abort_mutex;
struct buffer_head *j_sb_buffer;
journal_superblock_t *j_superblock;
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;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head * j_chkpt_bhs[64];
struct shrinker j_shrinker;
struct percpu_counter j_checkpoint_jh_count;
transaction_t *j_shrink_transaction;
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
long unsigned int j_fc_first;
long unsigned int j_fc_off;
long unsigned int j_fc_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
unsigned int j_total_len;
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
int (*j_bmap)(struct journal_s *, sector_t *);
};
6.8: ✅struct journal_s {
long unsigned int j_flags;
int j_errno;
struct mutex j_abort_mutex;
struct buffer_head *j_sb_buffer;
journal_superblock_t *j_superblock;
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;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head * j_chkpt_bhs[64];
struct shrinker *j_shrinker;
struct percpu_counter j_checkpoint_jh_count;
transaction_t *j_shrink_transaction;
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
long unsigned int j_fc_first;
long unsigned int j_fc_off;
long unsigned int j_fc_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
errseq_t j_fs_dev_wb_err;
unsigned int j_total_len;
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
int (*j_bmap)(struct journal_s *, sector_t *);
};
arm64: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
armhf: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
ppc64el: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
riscv64: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
aws: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
azure: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
gcp: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
lowlatency: ✅struct journal_s {
long unsigned int 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;
struct buffer_head * j_chkpt_bhs[64];
long unsigned int j_head;
long unsigned int j_tail;
long unsigned int j_free;
long unsigned int j_first;
long unsigned int j_last;
struct block_device *j_dev;
int j_blocksize;
long long unsigned int j_blk_offset;
char j_devname[56];
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[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
long unsigned int 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[2];
struct buffer_head **j_wbuf;
int j_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
};
Regular
4.4 and 4.8 ✅
4.8 and 4.10 ✅
4.10 and 4.13 ✅
4.13 and 4.15 ✅
4.15 and 4.18 ✅
4.18 and 5.0 ✅
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️struct mutex j_abort_mutex
int j_revoke_records_per_block
5.8 and 5.11 ⚠️wait_queue_head_t j_fc_wait
long unsigned int j_fc_first
long unsigned int j_fc_off
long unsigned int j_fc_last
unsigned int j_total_len
struct buffer_head **j_fc_wbuf
int j_fc_wbufsize
int (*j_submit_inode_data_buffers)(struct jbd2_inode *)
int (*j_finish_inode_data_buffers)(struct jbd2_inode *)
void (*j_fc_cleanup_callback)(struct journal_s *, int)
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t)
unsigned int j_maxlen
5.11 and 5.13 ✅
5.13 and 5.15 ⚠️long unsigned int j_atomic_flags
struct shrinker j_shrinker
struct percpu_counter j_checkpoint_jh_count
transaction_t *j_shrink_transaction
void (*j_fc_cleanup_callback)(struct journal_s *, int) ➡️ void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t)
5.15 and 5.19 ✅
5.19 and 6.2 ✅
6.2 and 6.5 ⚠️int (*j_bmap)(struct journal_s *, sector_t *)
int j_format_version
6.5 and 6.8 ⚠️errseq_t j_fs_dev_wb_err
long unsigned int j_atomic_flags
struct shrinker j_shrinker ➡️ struct shrinker *j_shrinker
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅