Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

fs/btrfs/extent-tree.c find_free_extent_clustered() -> btrfs_alloc_from_cluster()

Type Parameter Key Value
PARAM_VALUE 0 block_group 4096-ptr_max
PARAM_VALUE 0 block_group->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 cluster 4096-ptr_max
PARAM_VALUE 1 cluster->block_group 4096-ptr_max
PARAM_VALUE 1 cluster->block_group->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 cluster->refill_lock.rlock.dep_map->name 0-255
PARAM_VALUE 4 max_extent_size 6234682535772307536
CAPPED_DATA 0 block_group 1
CAPPED_DATA 1 cluster->block_group 1
NOSPEC 2 bytes
NOSPEC 2 bytes
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 bytes 0-s32max[c]
UNITS 2 bytes unit_byte
UNITS 3 min_start unit_byte
LOCK2 &space_info->groups_sem
LOCK2 1 &cluster->refill_lock
HALF_LOCKED2 &fs_info->remap_mutex
HALF_LOCKED2 &root->objectid_mutex
HALF_LOCKED2 1 &cluster->block_group->data_rwsem
TYPE_LOCK (struct btrfs_free_cluster)->refill_lock
TYPE_LOCK (struct btrfs_space_info)->groups_sem

fs/btrfs/extent-tree.c find_free_extent_clustered() -> btrfs_alloc_from_cluster()

Type Parameter Key Value
PARAM_VALUE 0 block_group 4096-ptr_max
PARAM_VALUE 0 block_group->cached 0-2,4-u32max
PARAM_VALUE 0 block_group->cluster_list.prev 4096-ptr_max
PARAM_VALUE 0 block_group->cluster_list.prev->next 4096-ptr_max
PARAM_VALUE 0 block_group->cluster_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 block_group->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 block_group->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 block_group->free_space_ctl 4096-ptr_max
PARAM_VALUE 0 block_group->free_space_ctl->free_space_bytes.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 0 block_group->free_space_ctl->free_space_offset.rb_node 4096-ptr_max
PARAM_VALUE 0 block_group->free_space_ctl->tree_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 block_group->fs_info->discard_ctl.work.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 block_group->fs_info->discard_ctl.work.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 block_group->fs_info->discard_ctl.work.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 cluster 4096-ptr_max
PARAM_VALUE 1 cluster->block_group 4096-ptr_max
PARAM_VALUE 1 cluster->block_group->cached 0-2,4-u32max
PARAM_VALUE 1 cluster->block_group->cluster_list.prev 4096-ptr_max
PARAM_VALUE 1 cluster->block_group->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 cluster->block_group->free_space_ctl 4096-ptr_max
PARAM_VALUE 1 cluster->block_group->fs_info 4096-ptr_max
PARAM_VALUE 1 cluster->block_group_list.next 4096-ptr_max
PARAM_VALUE 1 cluster->block_group_list.next->next 4096-ptr_max
PARAM_VALUE 1 cluster->block_group_list.next->prev 4096-ptr_max
PARAM_VALUE 1 cluster->block_group_list.prev->next 4096-ptr_max
PARAM_VALUE 1 cluster->block_group_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 cluster->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 cluster->refill_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 cluster->root.rb_node 0,4096-ptr_max
PARAM_VALUE 4 max_extent_size 6234682535772307536
CAPPED_DATA 0 block_group 1
CAPPED_DATA 2 bytes 1
CAPPED_DATA 2 bytes 1
DATA_SOURCE 0 block_group $0
PARAM_COMPARE 0 block_group->free_space_ctl->free_space >= $2
PARAM_COMPARE 2 bytes <= $0->free_space_ctl->free_space
NOSPEC 2 bytes
NOSPEC 2 bytes
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 bytes 0-s32max[c]
NO_OVERFLOW_SIMPLE 3 min_start
UNITS 2 bytes unit_byte
UNITS 3 min_start unit_byte
LOCK2 &space_info->groups_sem
LOCK2 1 &cluster->refill_lock
HALF_LOCKED2 &fs_info->remap_mutex
HALF_LOCKED2 &root->objectid_mutex
HALF_LOCKED2 1 &cluster->block_group->data_rwsem
TYPE_LOCK (struct btrfs_free_cluster)->refill_lock
TYPE_LOCK (struct btrfs_space_info)->groups_sem