Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

fs/f2fs/inode.c has_enough_free_blks() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 0
PARAM_VALUE 2 cap 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->stat_lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/segment.c inc_valid_block_count() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.counters 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner (-1)
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner_cpu u32max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_bytes 0-65023
PARAM_VALUE 1 inode->i_lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 cap 1
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 inode $1
PREEMPT_ADD <- disables preempt
LOCK2 0 &sbi->stat_lock
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/data.c has_enough_free_blks() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 0
PARAM_VALUE 2 cap 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->stat_lock
HALF_LOCKED2 &io->io_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/data.c inc_valid_block_count() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.counters 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner (-1)
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner_cpu u32max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_bytes 0-65023
PARAM_VALUE 1 inode->i_lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 cap 1
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 inode $1
PREEMPT_ADD <- disables preempt
LOCK2 0 &sbi->stat_lock
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/xattr.c has_enough_free_blks() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 0
PARAM_VALUE 2 cap 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->stat_lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/namei.c has_enough_free_blks() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 0
PARAM_VALUE 2 cap 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->stat_lock
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/file.c f2fs_ioc_reserve_dev_alias() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->s_ndevs 2-s32max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_rwsem.dep_map->name 0-255
PARAM_VALUE 1 inode->i_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 inode->i_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 inode->i_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 inode->i_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
PARAM_VALUE 2 cap 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPABLE 0 21
PREEMPT_ADD <- disables preempt
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->stat_lock
LOCK2 1 &inode->i_rwsem
TYPE_LOCK (struct f2fs_sb_info)->stat_lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c has_enough_free_blks() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 0
PARAM_VALUE 2 cap 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->stat_lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/file.c inc_valid_block_count() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.counters 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner (-1)
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner_cpu u32max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_bytes 0-65023
PARAM_VALUE 1 inode->i_lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 cap 1
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 inode $1
PREEMPT_ADD <- disables preempt
LOCK2 0 &sbi->stat_lock
TYPE_LOCK (struct f2fs_sb_info)->stat_lock

fs/f2fs/node.c inc_valid_node_count() -> get_available_block_count()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
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_inode 4096-ptr_max
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 inode 0,4096-ptr_max
PARAM_VALUE 1 inode->i_bytes 0-65023
PARAM_VALUE 1 inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 inode $1
BIT_INFO 2 cap 0x0,0x80000000
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 inode->i_blkbits
NO_OVERFLOW_SIMPLE 1 inode->i_bytes
NO_OVERFLOW_SIMPLE 1 inode->i_ino
NO_OVERFLOW_SIMPLE 1 inode->i_size
UNITS 0 sbi unit_byte
LOCK2 0 &sbi->stat_lock
HALF_LOCKED2 0 &sbi->cp_global_sem.internal_rwsem
TYPE_LOCK (struct f2fs_sb_info)->stat_lock