journal_t
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
void ext4_fc_init(struct super_block *sb, journal_t *journal);
int ext4_fc_commit(journal_t *journal, tid_t commit_tid);
journal_t *journal;
journal_t *journal;
static inline int ext4_journal_force_commit(journal_t *journal)
static inline int ext4_journal_destroy(struct ext4_sb_info *sbi, journal_t *journal)
static int ext4_fc_perform_commit(journal_t *journal)
int ext4_fc_commit(journal_t *journal, tid_t commit_tid)
static void ext4_fc_cleanup(journal_t *journal, int full, tid_t tid)
static int ext4_fc_replay_scan(journal_t *journal,
static int ext4_fc_replay(journal_t *journal, struct buffer_head *bh,
void ext4_fc_init(struct super_block *sb, journal_t *journal)
static int ext4_fc_flush_data(journal_t *journal)
static int ext4_fc_commit_dentry_updates(journal_t *journal, u32 *crc)
journal_t *journal = EXT4_SB(sb)->s_journal;
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
journal_t *journal = EXT4_JOURNAL(folio->mapping->host);
journal_t *journal = EXT4_JOURNAL(inode);
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
journal_t *journal = EXT4_SB(sb)->s_journal;
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
journal_t *journal;
journal_t *journal = sbi->s_journal;
static void ext4_journal_commit_callback(journal_t *journal, transaction_t *txn)
static void ext4_init_journal_params(struct super_block *sb, journal_t *journal)
static int ext4_journal_bmap(journal_t *journal, sector_t *block)
static journal_t *ext4_open_inode_journal(struct super_block *sb,
journal_t *journal;
static journal_t *ext4_open_dev_journal(struct super_block *sb,
journal_t *journal;
journal_t *journal;
journal_t *journal = EXT4_SB(sb)->s_journal;
journal_t *journal;
journal_t *journal = EXT4_SB(sb)->s_journal;
journal_t *journal = EXT4_SB(sb)->s_journal;
journal_t *journal = sbi->s_journal;
__flush_batch(journal_t *journal, int *batch_count)
int jbd2_log_do_checkpoint(journal_t *journal)
int jbd2_cleanup_journal_tail(journal_t *journal)
unsigned long jbd2_journal_shrink_checkpoint_list(journal_t *journal,
void __jbd2_log_wait_for_space(journal_t *journal)
void __jbd2_journal_clean_checkpoint_list(journal_t *journal,
void jbd2_journal_destroy_checkpoint(journal_t *journal)
journal_t *journal;
void __jbd2_journal_drop_transaction(journal_t *journal, transaction_t *transaction)
static int journal_submit_commit_record(journal_t *journal,
static int journal_wait_on_commit_record(journal_t *journal,
int jbd2_submit_inode_data(journal_t *journal, struct jbd2_inode *jinode)
int jbd2_wait_inode_data(journal_t *journal, struct jbd2_inode *jinode)
static int journal_submit_data_buffers(journal_t *journal,
static int journal_finish_inode_data_buffers(journal_t *journal,
static void write_tag_block(journal_t *j, journal_block_tag_t *tag,
static void jbd2_block_tag_csum_set(journal_t *j, journal_block_tag_t *tag,
void jbd2_journal_commit_transaction(journal_t *journal)
static void jbd2_commit_block_csum_set(journal_t *j, struct buffer_head *bh)
int jbd2_journal_get_log_tail(journal_t *journal, tid_t *tid,
int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block)
void jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block)
journal_t *journal;
journal_t *journal = pde_data(inode);
static void jbd2_stats_proc_init(journal_t *journal)
static void jbd2_stats_proc_exit(journal_t *journal)
journal_t *journal = shrink->private_data;
journal_t *journal = shrink->private_data;
static void journal_fail_superblock(journal_t *journal)
static int journal_check_superblock(journal_t *journal)
journal_t *journal = timer_container_of(journal, t, j_commit_timer);
static int journal_revoke_records_per_block(journal_t *journal)
static int jbd2_journal_get_max_txn_bufs(journal_t *journal)
static int jbd2_descriptor_blocks_per_trans(journal_t *journal)
static void jbd2_journal_init_transaction_limits(journal_t *journal)
static int journal_load_superblock(journal_t *journal)
static journal_t *journal_init_common(struct block_device *bdev,
journal_t *journal;
journal_t *journal = arg;
journal_t *jbd2_journal_init_dev(struct block_device *bdev,
journal_t *journal;
journal_t *jbd2_journal_init_inode(struct inode *inode)
journal_t *journal;
static int journal_reset(journal_t *journal)
static int jbd2_write_superblock(journal_t *journal, blk_opf_t write_flags)
int jbd2_journal_update_sb_log_tail(journal_t *journal, tid_t tail_tid,
static void jbd2_mark_journal_empty(journal_t *journal, blk_opf_t write_flags)
static int __jbd2_journal_erase(journal_t *journal, unsigned int flags)
void jbd2_journal_update_sb_errno(journal_t *journal)
int jbd2_journal_load(journal_t *journal)
int jbd2_journal_destroy(journal_t *journal)
int jbd2_journal_check_used_features(journal_t *journal, unsigned long compat,
int jbd2_journal_check_available_features(journal_t *journal, unsigned long compat,
jbd2_journal_initialize_fast_commit(journal_t *journal)
int jbd2_journal_set_features(journal_t *journal, unsigned long compat,
void jbd2_journal_clear_features(journal_t *journal, unsigned long compat,
int jbd2_journal_flush(journal_t *journal, unsigned int flags)
int jbd2_journal_wipe(journal_t *journal, int write)
void jbd2_journal_abort(journal_t *journal, int errno)
static int jbd2_journal_start_thread(journal_t *journal)
int jbd2_journal_errno(journal_t *journal)
int jbd2_journal_clear_err(journal_t *journal)
void jbd2_journal_ack_err(journal_t *journal)
size_t journal_tag_bytes(journal_t *journal)
static void journal_kill_thread(journal_t *journal)
void jbd2_journal_release_jbd_inode(journal_t *journal,
journal_t *journal = transaction->t_journal;
static int __jbd2_log_start_commit(journal_t *journal, tid_t target)
int jbd2_log_start_commit(journal_t *journal, tid_t tid)
static int __jbd2_journal_force_commit(journal_t *journal)
int jbd2_journal_force_commit_nested(journal_t *journal)
int jbd2_journal_force_commit(journal_t *journal)
int jbd2_journal_start_commit(journal_t *journal, tid_t *ptid)
int jbd2_trans_will_send_data_barrier(journal_t *journal, tid_t tid)
int jbd2_log_wait_commit(journal_t *journal, tid_t tid)
int jbd2_fc_begin_commit(journal_t *journal, tid_t tid)
static int __jbd2_fc_end_commit(journal_t *journal, tid_t tid, bool fallback)
int jbd2_fc_end_commit(journal_t *journal)
int jbd2_fc_end_commit_fallback(journal_t *journal)
int jbd2_transaction_committed(journal_t *journal, tid_t tid)
int jbd2_complete_transaction(journal_t *journal, tid_t tid)
int jbd2_journal_next_log_block(journal_t *journal, unsigned long long *retp)
int jbd2_fc_get_buf(journal_t *journal, struct buffer_head **bh_out)
int jbd2_fc_wait_bufs(journal_t *journal, int num_blks)
void jbd2_fc_release_bufs(journal_t *journal)
int jbd2_journal_bmap(journal_t *journal, unsigned long blocknr,
journal_t *journal = transaction->t_journal;
void jbd2_descriptor_block_csum_set(journal_t *j, struct buffer_head *bh)
static int jread(struct buffer_head **bhp, journal_t *journal,
static int jbd2_descriptor_block_csum_verify(journal_t *j, void *buf)
static int count_tags(journal_t *journal, struct buffer_head *bh)
static int fc_do_one_pass(journal_t *journal,
int jbd2_journal_recover(journal_t *journal)
int jbd2_journal_skip_recovery(journal_t *journal)
static inline unsigned long long read_tag_block(journal_t *journal,
static int do_one_pass(journal_t *journal,
static int calc_chksums(journal_t *journal, struct buffer_head *bh,
static int scan_revoke_records(journal_t *, enum passtype, struct buffer_head *,
static int jbd2_commit_block_csum_verify(journal_t *j, void *buf)
static bool jbd2_commit_block_csum_verify_partial(journal_t *j, void *buf)
static int jbd2_block_tag_csum_verify(journal_t *j, journal_block_tag_t *tag,
static __always_inline int jbd2_do_replay(journal_t *journal,
static int do_one_pass(journal_t *journal,
static void do_readahead(journal_t *journal, unsigned int start)
static int scan_revoke_records(journal_t *journal, enum passtype pass,
static void flush_descriptor(journal_t *, struct buffer_head *, int);
static inline int hash(journal_t *journal, unsigned long long block)
static int insert_revoke_hash(journal_t *journal, unsigned long long blocknr,
static struct jbd2_revoke_record_s *find_revoke_record(journal_t *journal,
int jbd2_journal_init_revoke(journal_t *journal, int hash_size)
void jbd2_journal_destroy_revoke(journal_t *journal)
journal_t *journal;
journal_t *journal = handle->h_transaction->t_journal;
void jbd2_clear_buffer_revoked_flags(journal_t *journal)
void jbd2_journal_switch_revoke_table(journal_t *journal)
journal_t *journal = transaction->t_journal;
journal_t *journal = transaction->t_journal;
static void flush_descriptor(journal_t *journal,
int jbd2_journal_set_revoke(journal_t *journal,
int jbd2_journal_test_revoke(journal_t *journal,
void jbd2_journal_clear_revoke(journal_t *journal)
journal_t *journal;
journal_t *journal;
static void wait_transaction_locked(journal_t *journal)
journal_t *journal;
static void wait_transaction_switching(journal_t *journal)
journal_t *journal;
journal_t *journal;
static void sub_reserved_credits(journal_t *journal, int blocks)
static int jbd2_max_user_trans_buffers(journal_t *journal)
static int add_transaction_credits(journal_t *journal, int blocks,
bool jbd2_journal_try_to_free_buffers(journal_t *journal, struct folio *folio)
static int journal_unmap_buffer(journal_t *journal, struct buffer_head *bh,
int jbd2_journal_invalidate_folio(journal_t *journal, struct folio *folio,
void jbd2_journal_refile_buffer(journal_t *journal, struct journal_head *jh)
journal_t *journal;
int jbd2_journal_begin_ordered_truncate(journal_t *journal,
static int start_this_handle(journal_t *journal, handle_t *handle,
handle_t *jbd2__journal_start(journal_t *journal, int nblocks, int rsv_blocks,
handle_t *jbd2_journal_start(journal_t *journal, int nblocks)
journal_t *journal = handle->h_journal;
journal_t *journal = handle->h_journal;
journal_t *journal = handle->h_journal;
journal_t *journal;
journal_t *journal = transaction->t_journal;
journal_t *journal;
static void jbd2_get_transaction(journal_t *journal,
void jbd2_journal_wait_updates(journal_t *journal)
void jbd2_journal_lock_updates(journal_t *journal)
void jbd2_journal_unlock_updates (journal_t *journal)
journal_t *journal;
journal_t *journal = osb->journal->j_journal;
journal_t *journal = osb->journal->j_journal;
journal_t *journal,
journal_t *journal = NULL;
journal_t *journal = osb->journal->j_journal;
journal_t *journal = handle->h_transaction->t_journal;
journal_t *journal = osb->journal->j_journal;
journal_t *j_journal = NULL;
journal_t *j_journal; /* The kernels journal type */
void (*j_commit_callback)(journal_t *,
static inline bool jbd2_format_support_feature(journal_t *j)
static inline bool jbd2_has_feature_##name(journal_t *j) \
static inline void jbd2_set_feature_##name(journal_t *j) \
static inline void jbd2_clear_feature_##name(journal_t *j) \
static inline bool jbd2_has_feature_##name(journal_t *j) \
static inline void jbd2_set_feature_##name(journal_t *j) \
static inline void jbd2_clear_feature_##name(journal_t *j) \
static inline bool jbd2_has_feature_##name(journal_t *j) \
static inline void jbd2_set_feature_##name(journal_t *j) \
static inline void jbd2_clear_feature_##name(journal_t *j) \
extern void jbd2_journal_refile_buffer(journal_t *, struct journal_head *);
void jbd2_descriptor_block_csum_set(journal_t *, struct buffer_head *);
int jbd2_journal_next_log_block(journal_t *, unsigned long long *);
int jbd2_journal_get_log_tail(journal_t *journal, tid_t *tid,
int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
void jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
extern void jbd2_journal_commit_transaction(journal_t *);
void __jbd2_journal_clean_checkpoint_list(journal_t *journal, enum jbd2_shrink_type type);
unsigned long jbd2_journal_shrink_checkpoint_list(journal_t *journal, unsigned long *nr_to_scan);
void jbd2_journal_destroy_checkpoint(journal_t *journal);
extern handle_t *jbd2_journal_start(journal_t *, int nblocks);
extern handle_t *jbd2__journal_start(journal_t *, int blocks, int rsv_blocks,
int jbd2_journal_invalidate_folio(journal_t *, struct folio *,
bool jbd2_journal_try_to_free_buffers(journal_t *journal, struct folio *folio);
extern int jbd2_journal_flush(journal_t *journal, unsigned int flags);
extern void jbd2_journal_lock_updates (journal_t *);
extern void jbd2_journal_unlock_updates (journal_t *);
void jbd2_journal_wait_updates(journal_t *);
extern journal_t * jbd2_journal_init_dev(struct block_device *bdev,
extern journal_t * jbd2_journal_init_inode (struct inode *);
extern int jbd2_journal_update_format (journal_t *);
(journal_t *, unsigned long, unsigned long, unsigned long);
(journal_t *, unsigned long, unsigned long, unsigned long);
(journal_t *, unsigned long, unsigned long, unsigned long);
(journal_t *, unsigned long, unsigned long, unsigned long);
extern int jbd2_journal_load (journal_t *journal);
extern int jbd2_journal_destroy (journal_t *);
extern int jbd2_journal_recover (journal_t *journal);
extern int jbd2_journal_wipe (journal_t *, int);
extern int jbd2_journal_skip_recovery (journal_t *);
extern void jbd2_journal_update_sb_errno(journal_t *);
extern int jbd2_journal_update_sb_log_tail (journal_t *, tid_t,
extern void jbd2_journal_abort (journal_t *, int);
extern int jbd2_journal_errno (journal_t *);
extern void jbd2_journal_ack_err (journal_t *);
extern int jbd2_journal_clear_err (journal_t *);
extern int jbd2_journal_bmap(journal_t *, unsigned long, unsigned long long *);
extern int jbd2_journal_force_commit(journal_t *);
extern int jbd2_journal_force_commit_nested(journal_t *);
extern int jbd2_journal_begin_ordered_truncate(journal_t *journal,
extern void jbd2_journal_release_jbd_inode(journal_t *journal, struct jbd2_inode *jinode);
extern int jbd2_journal_init_revoke(journal_t *, int);
extern void jbd2_journal_destroy_revoke(journal_t *);
extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t);
extern int jbd2_journal_test_revoke(journal_t *, unsigned long long, tid_t);
extern void jbd2_journal_clear_revoke(journal_t *);
extern void jbd2_journal_switch_revoke_table(journal_t *journal);
extern void jbd2_clear_buffer_revoked_flags(journal_t *journal);
int jbd2_log_start_commit(journal_t *journal, tid_t tid);
int jbd2_journal_start_commit(journal_t *journal, tid_t *tid);
int jbd2_log_wait_commit(journal_t *journal, tid_t tid);
int jbd2_transaction_committed(journal_t *journal, tid_t tid);
int jbd2_complete_transaction(journal_t *journal, tid_t tid);
int jbd2_log_do_checkpoint(journal_t *journal);
int jbd2_trans_will_send_data_barrier(journal_t *journal, tid_t tid);
void __jbd2_log_wait_for_space(journal_t *journal);
extern void __jbd2_journal_drop_transaction(journal_t *, transaction_t *);
extern int jbd2_cleanup_journal_tail(journal_t *);
int jbd2_fc_begin_commit(journal_t *journal, tid_t tid);
int jbd2_fc_end_commit(journal_t *journal);
int jbd2_fc_end_commit_fallback(journal_t *journal);
int jbd2_fc_get_buf(journal_t *journal, struct buffer_head **bh_out);
int jbd2_submit_inode_data(journal_t *journal, struct jbd2_inode *jinode);
int jbd2_wait_inode_data(journal_t *journal, struct jbd2_inode *jinode);
int jbd2_fc_wait_bufs(journal_t *journal, int num_blks);
void jbd2_fc_release_bufs(journal_t *journal);
static inline int is_journal_aborted(journal_t *journal)
static inline void jbd2_init_fs_dev_write_error(journal_t *journal)
static inline int jbd2_check_fs_dev_write_error(journal_t *journal)
extern size_t journal_tag_bytes(journal_t *journal);
static inline int jbd2_journal_has_csum_v2or3(journal_t *journal)
static inline unsigned long jbd2_log_space_left(journal_t *journal)
static inline tid_t jbd2_get_latest_transaction(journal_t *journal)
journal_t *journal;
journal_t *h_journal;
journal_t *t_journal;
TP_PROTO(journal_t *journal, int full, tid_t tid),
TP_PROTO(journal_t *journal, int result),
TP_PROTO(journal_t *journal, tid_t first_tid,
TP_PROTO(journal_t *journal, blk_opf_t write_flags),
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
TP_PROTO(journal_t *journal, unsigned long nr_to_scan,
TP_PROTO(journal_t *journal, unsigned long nr_to_scan, unsigned long count),
TP_PROTO(journal_t *journal, unsigned long nr_to_scan, unsigned long count),
TP_PROTO(journal_t *journal, unsigned long nr_to_scan,
TP_PROTO(journal_t *journal, tid_t first_tid, tid_t tid, tid_t last_tid,
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),