Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

fs/f2fs/gc.c sec_usage_check() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 &dirty_i->seglist_lock
HALF_LOCKED2 &sit_i->sentry_lock
HALF_LOCKED2 0 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 0 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->io_order_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->umount_mutex
TYPE_LOCK (struct dirty_seglist_info)->seglist_lock

fs/f2fs/segment.c __f2fs_issue_discard_zone() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->s_ndevs 2-s32max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 blkaddr $2
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
UNITS 1 blkaddr unit_page
HALF_LOCKED2 0 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->umount_mutex

fs/f2fs/segment.c __queue_discard_cmd() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->s_ndevs 2-s32max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 blkaddr $2
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
UNITS 1 blkaddr unit_page
HALF_LOCKED2 0 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->umount_mutex

fs/f2fs/segment.c f2fs_is_sequential_zone_area() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 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 blkaddr $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 &free_i->segmap_lock
HALF_LOCKED2 &curseg->curseg_mutex
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->io_order_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex
HALF_LOCKED2 &sit_i->sentry_lock
HALF_LOCKED2 0 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 0 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->io_order_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->umount_mutex
TYPE_LOCK (struct free_segmap_info)->segmap_lock

fs/f2fs/segment.c f2fs_update_device_state() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->s_ndevs 2-s32max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 0 sbi->s_ndevs 1
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 blkaddr $2
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
UNITS 1 blkaddr unit_page
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 0 &sbi->io_order_lock.internal_rwsem

fs/f2fs/segment.c get_new_segment() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 &free_i->segmap_lock
HALF_LOCKED2 &curseg->curseg_mutex
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->io_order_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex
HALF_LOCKED2 &sit_i->sentry_lock
HALF_LOCKED2 0 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 0 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->io_order_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->umount_mutex
TYPE_LOCK (struct free_segmap_info)->segmap_lock

fs/f2fs/segment.c get_new_segment() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 &free_i->segmap_lock
HALF_LOCKED2 &curseg->curseg_mutex
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->io_order_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex
HALF_LOCKED2 &sit_i->sentry_lock
HALF_LOCKED2 0 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 0 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->io_order_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 0 &sbi->umount_mutex
TYPE_LOCK (struct free_segmap_info)->segmap_lock

fs/f2fs/segment.c is_next_segment_free() -> f2fs_target_device_index()

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->blocks_per_seg 1
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 &curseg->curseg_mutex
LOCK2 &sit_i->sentry_lock
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->io_order_lock.internal_rwsem
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 0 &sbi->io_order_lock.internal_rwsem
TYPE_LOCK (struct curseg_info)->curseg_mutex
TYPE_LOCK (struct sit_info)->sentry_lock

fs/f2fs/segment.c sec_usage_check() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
DATA_SOURCE 0 sbi $0

fs/f2fs/data.c f2fs_is_sequential_zone_area() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 blkaddr $1
CAPABLE 0 21
UNITS 0 sbi unit_byte
UNITS 1 blkaddr unit_page
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/data.c f2fs_map_blocks_cached() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->s_ndevs 2-s32max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
UNITS 0 sbi unit_byte
UNITS 1 blkaddr unit_page

fs/f2fs/data.c is_end_zone_blkaddr() -> f2fs_target_device_index()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->s_ndevs 2-s32max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
DATA_SOURCE 0 sbi $0
DATA_SOURCE 1 blkaddr $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
UNITS 1 blkaddr unit_page
LOCK2 &io->io_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

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

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->s_ndevs 2-s32max
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPABLE 0 21
PREEMPT_ADD <- disables preempt
UNITS 0 sbi unit_byte
UNITS 1 blkaddr unit_page
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem