Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

fs/f2fs/node.c add_free_nid() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nid_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 n 1-4294967294
PARAM_VALUE 2 for_dirty 0
BUF_SIZE 0 nm_i (-1),992
BUF_SIZE 0 nm_i (-1),992
CAPPED_DATA 1 n 1
DATA_SOURCE 1 n $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 1 n unit_byte
LOCK2 &nm_i->nat_tree_lock.internal_rwsem
LOCK2 0 &nm_i->nid_list_lock
HALF_LOCKED2 &curseg->journal_rwsem
TYPE_LOCK (struct f2fs_nm_info)->nid_list_lock
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c cache_nat_entry() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 2 for_dirty 0
DATA_SOURCE 1 n $1
NOSPEC 1 n
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 n
LOCK2 0 &nm_i->nat_tree_lock.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &src_inode->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c f2fs_get_node_info() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 2 for_dirty 0
DATA_SOURCE 1 n $1
NOSPEC 1 n
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 n
LOCK2 0 &nm_i->nat_tree_lock.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &src_inode->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c f2fs_is_checkpointed_node() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.read_waiters.head.prev->next 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.read_waiters.head.prev->next->next 4096-ptr_max
PARAM_VALUE 2 for_dirty 0
DATA_SOURCE 1 n $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 n unit_byte
LOCK2 0 &nm_i->nat_tree_lock.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c f2fs_need_dentry_mark() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.read_waiters.head.prev->next 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.read_waiters.head.prev->next->next 4096-ptr_max
PARAM_VALUE 2 for_dirty 0
DATA_SOURCE 1 n $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &nm_i->nat_tree_lock.internal_rwsem
HALF_LOCKED2 &sbi->node_write.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c f2fs_need_inode_block_update() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.read_waiters.head.prev->next 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.read_waiters.head.prev->next->next 4096-ptr_max
PARAM_VALUE 2 for_dirty 0
DATA_SOURCE 1 n $1
NOSPEC 1 n
NOSPEC 1 n
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 n 0-4294967294[c]
LOCK2 &sbi->node_write.internal_rwsem
LOCK2 0 &nm_i->nat_tree_lock.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c remove_nats_in_journal() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 1 n 0-4294967294
PARAM_VALUE 2 for_dirty 1
CAPPED_DATA 1 n 1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 n unit_byte
LOCK2 &curseg->journal_rwsem
LOCK2 &nm_i->nat_tree_lock.internal_rwsem
LOCK2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex
TYPE_LOCK (struct curseg_info)->journal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c set_node_addr() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 2 for_dirty 1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 n
UNITS 1 n unit_byte
LOCK2 0 &nm_i->nat_tree_lock.internal_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->node_write.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c set_node_addr() -> __lookup_nat_cache()

Type Parameter Key Value
PARAM_VALUE 0 nm_i 4096-ptr_max
PARAM_VALUE 0 nm_i->nat_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 nm_i->nat_tree_lock.internal_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 2 for_dirty 0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 n
UNITS 1 n unit_byte
LOCK2 0 &nm_i->nat_tree_lock.internal_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->node_write.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem