Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

fs/jbd2/transaction.c jbd2_journal_forget() -> jbd2_journal_try_remove_checkpoint()

Type Parameter Key Value
PARAM_VALUE 0 jh 4096-ptr_max
PARAM_VALUE 0 jh->b_committed_data 0
PARAM_VALUE 0 jh->b_cp_transaction 1-u64max
PARAM_VALUE 0 jh->b_modified 0
PARAM_VALUE 0 jh->b_state_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 jh->b_transaction 0
BUF_SIZE 0 jh 32,352,520
BUF_SIZE 0 jh 32,352,520
DATA_SOURCE 0 jh r jbd2_journal_grab_journal_head
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &journal->j_list_lock
LOCK2 0 &jh->b_state_lock
TYPE_LOCK (struct journal_head)->b_state_lock
TYPE_LOCK (struct journal_s)->j_list_lock

fs/jbd2/transaction.c jbd2_journal_try_to_free_buffers() -> jbd2_journal_try_remove_checkpoint()

Type Parameter Key Value
PARAM_VALUE 0 jh 4096-ptr_max
PARAM_VALUE 0 jh->b_cp_transaction 1-u64max
PARAM_VALUE 0 jh->b_next_transaction 0
PARAM_VALUE 0 jh->b_state_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 jh->b_transaction 0
BUF_SIZE 0 jh 32,352,520
BUF_SIZE 0 jh 32,352,520
DATA_SOURCE 0 jh r jbd2_journal_grab_journal_head
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &journal->j_list_lock
LOCK2 0 &jh->b_state_lock
HALF_LOCKED2 &folio->private->lock
HALF_LOCKED2 global &mf_mutex
TYPE_LOCK (struct journal_head)->b_state_lock
TYPE_LOCK (struct journal_s)->j_list_lock

fs/jbd2/checkpoint.c journal_shrink_one_cp_list() -> jbd2_journal_try_remove_checkpoint()

Type Parameter Key Value
PARAM_VALUE 0 jh 4096-ptr_max
PARAM_VALUE 0 jh->b_bh->b_folio->mapping->host->i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648
DATA_SOURCE 0 jh $0 [m]
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 jh unit_byte
LOCK2 &journal->j_list_lock
TYPE_LOCK (struct journal_s)->j_list_lock