Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

fs/f2fs/segment.c __replace_atomic_write_block() -> f2fs_replace_block()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 dn 9222824055256219648
PARAM_VALUE 1 dn->inode 4096-ptr_max
PARAM_VALUE 1 dn->inode_folio 1-u64max
PARAM_VALUE 3 new_addr 1-4294967293
PARAM_VALUE 5 recover_curseg 1
PARAM_VALUE 6 recover_newaddr 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 3 new_addr $2
MEM_ZERO 1 dn
NOCHECK_CALL
UNITS 0 sbi unit_byte
UNITS 2 old_addr unit_page
LOCK2 &inode->i_rwsem
LOCK2 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/segment.c __replace_atomic_write_block() -> f2fs_replace_block()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->current_reserved_blocks 1-u32max
PARAM_VALUE 0 sbi->nm_info 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->total_valid_block_count 0-4294967294
PARAM_VALUE 1 dn 9222824055256219648
PARAM_VALUE 3 new_addr 1-4294967293
PARAM_VALUE 5 recover_curseg 1
PARAM_VALUE 6 recover_newaddr 0
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
CAPPED_DATA 0 sbi->reserved_blocks 1
CAPPED_DATA 3 new_addr 1
DATA_SOURCE 3 new_addr $2
MEM_ZERO 1 dn
NOCHECK_CALL
UNITS 0 sbi unit_byte
UNITS 2 old_addr unit_page
LOCK2 &inode->i_rwsem
LOCK2 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/recovery.c do_recover_data() -> f2fs_replace_block()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 0 sbi->cp_global_sem.sbi 4096-ptr_max
PARAM_VALUE 0 sbi->iostat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->meta_inode 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_entries.prev->next 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_entries.prev->next->next 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->nm_info->nat_set_root.xa_flags 0,67108864-u32max
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb 4096-ptr_max
PARAM_VALUE 0 sbi->sb->s_fs_info->error_dirty 0-1
PARAM_VALUE 0 sbi->stat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->total_valid_inode_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->total_valid_inode_count.lock.owner (-1)
PARAM_VALUE 0 sbi->total_valid_inode_count.lock.owner_cpu u32max
PARAM_VALUE 1 dn 6640892263497801728
PARAM_VALUE 3 new_addr 1-4294967294
PARAM_VALUE 5 recover_curseg 0
PARAM_VALUE 6 recover_newaddr 0
CAPPED_DATA 0 sbi->sb 1
CAPPED_DATA 2 old_addr 1
CAPPED_DATA 3 new_addr 1
DATA_SOURCE 0 sbi $0
DATA_SOURCE 2 old_addr r f2fs_data_blkaddr
DATA_SOURCE 3 new_addr r data_blkaddr
PARAM_COMPARE 2 old_addr != $3
PARAM_COMPARE 3 new_addr != $2
MEM_ZERO 1 dn
NOCHECK_CALL
UNITS 3 new_addr unit_page
LOCK2 0 &sbi->cp_global_sem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/file.c __clone_blkaddrs() -> f2fs_replace_block()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->adjust_lock_priority 0-4294967295
PARAM_VALUE 0 sbi->allocate_section_hint 0-4294967295
PARAM_VALUE 0 sbi->allocate_section_policy 0-4294967295
PARAM_VALUE 0 sbi->bggc_io_aware 0-4294967295
PARAM_VALUE 0 sbi->blkzone_alloc_policy 0-4294967295
PARAM_VALUE 0 sbi->blocks_per_blkz 0-4294967295
PARAM_VALUE 0 sbi->blocks_per_seg 0-4294967295
PARAM_VALUE 0 sbi->blocksize 0-4294967295
PARAM_VALUE 0 sbi->compr_new_inode 0-4294967295
PARAM_VALUE 0 sbi->compress_percent 0-4294967295
PARAM_VALUE 0 sbi->compress_watermark 0-4294967295
PARAM_VALUE 0 sbi->cur_victim_sec 0-4294967295
PARAM_VALUE 0 sbi->current_reserved_blocks 0-4294967295
PARAM_VALUE 0 sbi->data_io_flag 0-4294967295
PARAM_VALUE 0 sbi->dirty_device 0-4294967295
PARAM_VALUE 0 sbi->discard_blks 0-4294967295
PARAM_VALUE 0 sbi->donate_files 0-4294967295
PARAM_VALUE 0 sbi->entries_in_sum 0-4294967295
PARAM_VALUE 0 sbi->first_seq_zone_segno 0-4294967295
PARAM_VALUE 0 sbi->fsync_node_num 0-4294967295
PARAM_VALUE 0 sbi->fsync_seg_id 0-4294967295
PARAM_VALUE 0 sbi->gc_mode 0-4294967295
PARAM_VALUE 0 sbi->gc_remaining_trials 0-4294967295
PARAM_VALUE 0 sbi->gc_segment_mode 0-4294967295
PARAM_VALUE 0 sbi->hot_data_age_threshold 0-4294967295
PARAM_VALUE 0 sbi->io_skip_bggc 0-4294967295
PARAM_VALUE 0 sbi->iostat_period_ms 0-4294967295
PARAM_VALUE 0 sbi->last_age_weight 0-4294967295
PARAM_VALUE 0 sbi->last_valid_block_count 0-4294967295
PARAM_VALUE 0 sbi->lock_duration_priority 0-4294967295
PARAM_VALUE 0 sbi->log_blocks_per_seg 0-4294967295
PARAM_VALUE 0 sbi->log_blocksize 0-4294967295
PARAM_VALUE 0 sbi->log_sectors_per_block 0-4294967295
PARAM_VALUE 0 sbi->max_io_bytes 0-4294967295
PARAM_VALUE 0 sbi->max_open_zones 0-4294967295
PARAM_VALUE 0 sbi->max_orphans 0-4294967295
PARAM_VALUE 0 sbi->max_read_extent_count 0-4294967295
PARAM_VALUE 0 sbi->max_victim_search 0-4294967295
PARAM_VALUE 0 sbi->meta_ino_num 0-4294967295
PARAM_VALUE 0 sbi->migration_granularity 0-4294967295
PARAM_VALUE 0 sbi->migration_window_granularity 0-4294967295
PARAM_VALUE 0 sbi->nat_journal_entries 0-4294967295
PARAM_VALUE 0 sbi->nm_info 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.dep_map->name 0-255
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_ino_num 0-4294967295
PARAM_VALUE 0 sbi->node_io_flag 0-4294967295
PARAM_VALUE 0 sbi->nquota_files 0-4294967295
PARAM_VALUE 0 sbi->other_skip_bggc 0-4294967295
PARAM_VALUE 0 sbi->page_array_slab_size 0-4294967295
PARAM_VALUE 0 sbi->reserved_blocks 0-4294967295
PARAM_VALUE 0 sbi->reserved_pin_section 0-4294967295
PARAM_VALUE 0 sbi->root_ino_num 0-4294967295
PARAM_VALUE 0 sbi->s_chksum_seed 0-4294967295
PARAM_VALUE 0 sbi->sb->s_bdev->bd_dev 0-4294967295
PARAM_VALUE 0 sbi->secs_per_zone 0-4294967295
PARAM_VALUE 0 sbi->segs_per_sec 0-4294967295
PARAM_VALUE 0 sbi->seq_file_ra_mul 0-4294967295
PARAM_VALUE 0 sbi->shrinker_run_no 0-4294967295
PARAM_VALUE 0 sbi->sit_journal_entries 0-4294967295
PARAM_VALUE 0 sbi->sum_blocksize 0-4294967295
PARAM_VALUE 0 sbi->sum_entry_size 0-4294967295
PARAM_VALUE 0 sbi->sum_journal_size 0-4294967295
PARAM_VALUE 0 sbi->sums_per_block 0-4294967295
PARAM_VALUE 0 sbi->total_node_count 0-4294967295
PARAM_VALUE 0 sbi->total_sections 0-4294967295
PARAM_VALUE 0 sbi->total_valid_block_count 0-4294967295
PARAM_VALUE 0 sbi->total_valid_node_count 0-4294967295
PARAM_VALUE 0 sbi->unusable_block_count 0-4294967295
PARAM_VALUE 0 sbi->unusable_blocks_per_sec 0-4294967295
PARAM_VALUE 0 sbi->user_block_count 0-4294967295
PARAM_VALUE 0 sbi->warm_data_age_threshold 0-4294967295
PARAM_VALUE 1 dn 265096310918152192
PARAM_VALUE 5 recover_curseg 1
PARAM_VALUE 6 recover_newaddr 0
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
MEM_ZERO 1 dn
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 sbi unit_byte
UNITS 2 old_addr unit_page
LOCK2 &dst_inode->i_rwsem
LOCK2 &sbi->cp_rwsem.internal_rwsem
LOCK2 &src_inode->i_rwsem
HALF_LOCKED2 &dst_inode->i_mapping->invalidate_lock
HALF_LOCKED2 &mapping->invalidate_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &src_inode->i_mapping->invalidate_lock
TYPE_LOCK (struct address_space)->invalidate_lock
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem
TYPE_LOCK (struct inode)->i_rwsem