Defined in 1 files as a prototype:

Defined in 1 files as a member:

Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

fs/btrfs/free-space-cache.c __btrfs_remove_free_space_cache() -> free_bitmap()

Type Parameter Key Value
PARAM_VALUE 0 ctl 4096-ptr_max
PARAM_VALUE 0 ctl->free_space_offset.rb_node 4096-ptr_max
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bitmap 1-u64max
DATA_SOURCE 0 ctl $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &caching_ctl->mutex
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 &tmp_ctl.tree_lock
HALF_LOCKED2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c btrfs_find_space_for_alloc() -> free_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->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 1 bitmap_info->bytes 0
PARAM_VALUE 1 bitmap_info->bytes_index.__rb_parent_color 1
PARAM_VALUE 1 bitmap_info->bytes_index.rb_left 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bytes_index.rb_right 4096-ptr_max
PARAM_VALUE 1 bitmap_info->max_extent_size 0
CAPPED_DATA 1 bitmap_info->offset 1
DATA_SOURCE 1 bitmap_info r find_free_space
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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 copy_free_space_cache() -> free_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
CAPPED_DATA 0 ctl->block_group 1
CAPPED_DATA 1 bitmap_info->offset 1
DATA_SOURCE 0 ctl $0
PREEMPT_ADD
NOCHECK_CALL
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 remove_from_bitmap() -> free_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 1 bitmap_info->bytes 0
CAPPED_DATA 0 ctl->block_group 1
CAPPED_DATA 1 bitmap_info->offset 1
DATA_SOURCE 0 ctl $0
DATA_SOURCE 1 bitmap_info $1 [m]
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c remove_from_bitmap() -> free_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 1 bitmap_info->bytes 0
CAPPED_DATA 0 ctl->block_group 1
CAPPED_DATA 1 bitmap_info->offset 1
DATA_SOURCE 0 ctl $0
DATA_SOURCE 1 bitmap_info $1 [m]
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c steal_from_bitmap_to_end() -> free_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->free_space_bytes.rb_leftmost 4096-ptr_max
PARAM_VALUE 0 ctl->free_space_bytes.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 0 ctl->total_bitmaps 1-s32max
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bytes 0
PARAM_VALUE 1 bitmap_info->bytes_index.__rb_parent_color 1
PARAM_VALUE 1 bitmap_info->bytes_index.rb_left 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bytes_index.rb_right 4096-ptr_max
PARAM_VALUE 1 bitmap_info->max_extent_size 0
CAPPED_DATA 0 ctl->block_group 1
CAPPED_DATA 1 bitmap_info->offset 1
DATA_SOURCE 0 ctl $0
DATA_SOURCE 1 bitmap_info r tree_search_offset
FUZZY_MAX 0 ctl->total_bitmaps 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cluster->lock
HALF_LOCKED2 &ctl->tree_lock
HALF_LOCKED2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c steal_from_bitmap_to_front() -> free_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->free_space_bytes.rb_leftmost 4096-ptr_max
PARAM_VALUE 0 ctl->free_space_bytes.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 0 ctl->total_bitmaps 1-s32max
PARAM_VALUE 1 bitmap_info 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bytes 0
PARAM_VALUE 1 bitmap_info->bytes_index.__rb_parent_color 1
PARAM_VALUE 1 bitmap_info->bytes_index.rb_left 4096-ptr_max
PARAM_VALUE 1 bitmap_info->bytes_index.rb_right 4096-ptr_max
PARAM_VALUE 1 bitmap_info->max_extent_size 0
CAPPED_DATA 0 ctl->block_group 1
CAPPED_DATA 1 bitmap_info->offset 1
DATA_SOURCE 0 ctl $0
DATA_SOURCE 1 bitmap_info r tree_search_offset
FUZZY_MAX 0 ctl->total_bitmaps 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cluster->lock
HALF_LOCKED2 &ctl->tree_lock
HALF_LOCKED2 0 &ctl->tree_lock
TYPE_LOCK (struct btrfs_free_space_ctl)->tree_lock

fs/btrfs/free-space-cache.c trim_bitmaps() -> free_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->bytes 0
PARAM_VALUE 1 bitmap_info->offset 0-18446744073709551614
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
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
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