Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

fs/f2fs/inode.c do_read_inode() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 0 sbi->root_ino_num 1
CAPPED_DATA 1 ino 1
CAPPED_DATA 1 ino 1
PARAM_COMPARE 1 ino >= $0->root_ino_num
PARAM_COMPARE 1 ino >= $0->root_ino_num
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 ino 1-u32max[c]
UNITS 0 sbi unit_byte
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem

fs/f2fs/inode.c f2fs_update_inode_page() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
NOSPEC 1 ino
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 ino 0-u64max
UNITS 0 sbi unit_byte
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/data.c __find_data_block() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &inode->i_rwsem

fs/f2fs/data.c __reserve_data_block() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->node_change.read_waiters.head.prev->next 4096-ptr_max
PARAM_VALUE 0 sbi->node_change.read_waiters.head.prev->next->next 4096-ptr_max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->node_change.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/data.c prepare_write_begin() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->meta_inode->i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_inode->i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 0 &sbi->node_change.internal_rwsem

fs/f2fs/xattr.c read_inline_xattr() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 ino 0-u64max
UNITS 0 sbi unit_byte
HALF_LOCKED2 &inode->i_rwsem

fs/f2fs/xattr.c write_all_xattrs() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 ino
UNITS 0 sbi unit_byte
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/inline.c f2fs_add_inline_entry() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/inline.c f2fs_convert_inline_inode() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_rwsem.sbi 4096-ptr_max
PARAM_VALUE 0 sbi->sb 4096-ptr_max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 0 sbi->s_ndevs 1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &src->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/inline.c f2fs_empty_inline_dir() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/inline.c f2fs_find_in_inline_dir() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/inline.c f2fs_inline_data_fiemap() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/inline.c f2fs_inline_data_fiemap() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 1 ino 0-4294967294
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 1 ino 1
CAPPED_DATA 1 ino 1
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/inline.c f2fs_read_inline_data() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mapping->invalidate_lock

fs/f2fs/inline.c f2fs_read_inline_dir() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/inline.c f2fs_recover_inline_data() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 0 sbi->current_reserved_blocks 0-4294967295
PARAM_VALUE 0 sbi->discard_blks 0-4294967295
PARAM_VALUE 0 sbi->nm_info->available_nids 0-4294967295
PARAM_VALUE 0 sbi->nm_info->dirty_nats_ratio 0-4294967295
PARAM_VALUE 0 sbi->nm_info->max_nid 0-4294967295
PARAM_VALUE 0 sbi->nm_info->max_rf_node_blocks 0-4294967295
PARAM_VALUE 0 sbi->nm_info->nat_bits_blocks 0-4294967295
PARAM_VALUE 0 sbi->nm_info->nat_blkaddr 0-4294967295
PARAM_VALUE 0 sbi->nm_info->nat_blocks 0-4294967295
PARAM_VALUE 0 sbi->nm_info->next_scan_nid 0-4294967295
PARAM_VALUE 0 sbi->nm_info->ra_nid_pages 0-4294967295
PARAM_VALUE 0 sbi->nm_info->ram_thresh 0-4294967295
PARAM_VALUE 0 sbi->total_valid_block_count 0-4294967295
PARAM_VALUE 0 sbi->unusable_block_count 0-4294967295
PARAM_VALUE 1 ino 0-u32max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 1 ino 1
CAPPED_DATA 1 ino 1
NO_OVERFLOW_SIMPLE 1 ino
UNITS 0 sbi unit_byte
LOCK2 &sbi->cp_global_sem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/inline.c f2fs_recover_inline_data() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 1 ino 0-u32max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 1 ino 1
CAPPED_DATA 1 ino 1
NO_OVERFLOW_SIMPLE 1 ino
UNITS 0 sbi unit_byte
LOCK2 &sbi->cp_global_sem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/inline.c f2fs_try_convert_inline_dir() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_rwsem.sbi 4096-ptr_max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/inline.c f2fs_write_inline_data() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte

fs/f2fs/file.c f2fs_do_truncate_blocks() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 ino
UNITS 0 sbi unit_byte
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/dir.c f2fs_init_inode_metadata() -> f2fs_get_inode_folio()

Type Parameter Key Value
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 ino
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c f2fs_get_dnode_of_data() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 1 ino 0-u32max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 &inode->i_mapping->invalidate_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &mapping->invalidate_lock
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &src_inode->i_rwsem

fs/f2fs/node.c f2fs_recover_inline_xattr() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 1 ino 0-u32max
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 1 ino 1
CAPPED_DATA 1 ino 1
NO_OVERFLOW_SIMPLE 1 ino
LOCK2 &sbi->cp_global_sem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c f2fs_truncate_inode_blocks() -> f2fs_get_inode_folio()

Type Parameter Key Value
PARAM_VALUE 1 ino 0-4294967294
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 ino
UNITS 0 sbi unit_byte
HALF_LOCKED2 &inode->i_mapping->invalidate_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem