Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

fs/btrfs/free-space-cache.c btrfs_alloc_from_bitmap() -> search_bitmap()

Type Parameter Key Value
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bitmap 1-u64max
PARAM_VALUE 2 offset 5118591864976588800
PARAM_VALUE 3 bytes 7566441967326027776
PARAM_VALUE 4 for_alloc 1
DATA_SOURCE 1 bitmap_info $2
NOSPEC 3 *bytes
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 3 *bytes 0-s32max[c]
NO_OVERFLOW_SIMPLE 1 bitmap_info->offset
USER_PTR 3 bytes
LOCK2 &cluster->lock
LOCK2 &cluster->refill_lock
LOCK2 &space_info->groups_sem
HALF_LOCKED2 &cluster->block_group->data_rwsem
HALF_LOCKED2 &fs_info->remap_mutex
HALF_LOCKED2 &root->objectid_mutex
TYPE_LOCK (struct btrfs_free_cluster)->lock
TYPE_LOCK (struct btrfs_free_cluster)->refill_lock
TYPE_LOCK (struct btrfs_space_info)->groups_sem

fs/btrfs/free-space-cache.c copy_free_space_cache() -> search_bitmap()

Type Parameter Key Value
PARAM_VALUE 0 ctl 2308521935435767808
PARAM_VALUE 0 ctl->block_group 4096-ptr_max
PARAM_VALUE 0 ctl->block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 ctl->cache_writeout_mutex.magic 4096-ptr_max
PARAM_VALUE 0 ctl->free_space_offset.rb_node 4096-ptr_max
PARAM_VALUE 0 ctl->trimming_ranges.next 4096-ptr_max
PARAM_VALUE 0 ctl->trimming_ranges.prev 4096-ptr_max
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bitmap 1-u64max
PARAM_VALUE 2 offset 2531932094348804096
PARAM_VALUE 3 bytes 4690565957686411264
PARAM_VALUE 3 *bytes 0-u32max
PARAM_VALUE 4 for_alloc 0
CAPPED_DATA 0 ctl->block_group 1
DATA_SOURCE 0 ctl $0
PREEMPT_ADD
LOCK2 &caching_ctl->mutex
LOCK2 &fs_info->commit_root_sem
LOCK2 &tmp_ctl.tree_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_caching_control)->mutex
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock
TYPE_LOCK (struct btrfs_fs_info)->commit_root_sem

fs/btrfs/free-space-cache.c find_free_space() -> search_bitmap()

Type Parameter Key Value
PARAM_VALUE 0 ctl 4096-ptr_max
PARAM_VALUE 0 ctl->free_space_offset.rb_node 1-u64max
PARAM_VALUE 0 ctl->tree_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bitmap 1-u64max
PARAM_VALUE 2 offset 6543939466407415808
PARAM_VALUE 3 bytes 648074415516241920
PARAM_VALUE 4 for_alloc 1
DATA_SOURCE 0 ctl $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 3 *bytes 0-s32max[c]
UNITS 1 bitmap_info unit_byte
USER_PTR 3 bytes
LOCK2 0 &ctl->tree_lock
HALF_LOCKED2 &space_info->groups_sem
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c remove_from_bitmap() -> search_bitmap()

Type Parameter Key Value
PARAM_VALUE 0 ctl 4096-ptr_max
PARAM_VALUE 0 ctl->block_group 4096-ptr_max
PARAM_VALUE 0 ctl->block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 ctl->tree_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bitmap 1-u64max
PARAM_VALUE 2 offset 2636443174014644224
PARAM_VALUE 3 bytes 1886915934064476160
PARAM_VALUE 4 for_alloc 0
CAPPED_DATA 0 ctl->block_group 1
DATA_SOURCE 0 ctl $0
DATA_SOURCE 1 bitmap_info $1 [m]
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c remove_from_bitmap() -> search_bitmap()

Type Parameter Key Value
PARAM_VALUE 0 ctl 4096-ptr_max
PARAM_VALUE 0 ctl->block_group 4096-ptr_max
PARAM_VALUE 0 ctl->block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 ctl->tree_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bitmap 1-u64max
PARAM_VALUE 2 offset 2636443174014644224
PARAM_VALUE 3 bytes 1886915934064476160
PARAM_VALUE 3 *bytes 0-s32max,18446744071562067968-u64max
PARAM_VALUE 4 for_alloc 0
CAPPED_DATA 0 ctl->block_group 1
DATA_SOURCE 0 ctl $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c test_check_exists() -> search_bitmap()

Type Parameter Key Value
PARAM_VALUE 0 ctl 4096-ptr_max
PARAM_VALUE 0 ctl->block_group 4096-ptr_max
PARAM_VALUE 0 ctl->block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 ctl->tree_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bitmap 1-u64max
PARAM_VALUE 2 offset 5475048887490441216
PARAM_VALUE 3 bytes 6185566745215262720
PARAM_VALUE 3 *bytes 0-s32max,18446744071562067968-u64max
PARAM_VALUE 4 for_alloc 0
CAPPED_DATA 0 ctl->block_group 1
PREEMPT_ADD <- disables preempt
LOCK2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c trim_bitmaps() -> search_bitmap()

Type Parameter Key Value
PARAM_VALUE 0 ctl 4096-ptr_max
PARAM_VALUE 0 ctl->block_group 4096-ptr_max
PARAM_VALUE 0 ctl->block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 ctl->cache_writeout_mutex.dep_map->name 0-255
PARAM_VALUE 0 ctl->cache_writeout_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ctl->cache_writeout_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ctl->cache_writeout_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 ctl->cache_writeout_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ctl->cache_writeout_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 ctl->cache_writeout_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 ctl->tree_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->offset 0-18446744073709551614
PARAM_VALUE 3 bytes 5289707076489822208
PARAM_VALUE 3 *bytes 1-u64max
PARAM_VALUE 4 for_alloc 0
CAPPED_DATA 0 ctl->block_group 1
CAPPED_DATA 0 &ctl->cache_writeout_mutex 1
CAPPED_DATA 1 bitmap_info->offset 1
DATA_SOURCE 1 bitmap_info r tree_search_offset
NOSPEC 3 *bytes
PREEMPT_ADD <- disables preempt
USER_DATA 3 *bytes 1-s32max[c]
USER_PTR 3 bytes
LOCK2 0 &ctl->cache_writeout_mutex
LOCK2 0 &ctl->tree_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_free_space_ctl)->cache_writeout_mutex
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock