Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

fs/btrfs/space-info.c do_reclaim_sweep() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
CAPPED_DATA 0 &cache->list 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &space_info->groups_sem
TYPE_LOCK (struct btrfs_space_info)->groups_sem

fs/btrfs/free-space-cache.c btrfs_find_space_cluster() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->cached 0-2,4-u32max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->free_space_ctl 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->block_group 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->free_space_bytes.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->free_space_offset.rb_node 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->tree_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.wq->saved_min_active s32min-s32max
CAPPED_DATA 0 cache 1
DATA_SOURCE 0 cache $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cluster->lock
LOCK2 &cluster->refill_lock
LOCK2 &ctl->tree_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_free_space_ctl)->tree_lock
TYPE_LOCK (struct btrfs_space_info)->groups_sem

fs/btrfs/free-space-cache.c btrfs_return_cluster_to_free_space() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
DATA_SOURCE 0 cache $0 [m]
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cluster->lock
LOCK2 &cluster->refill_lock
HALF_LOCKED2 &space_info->groups_sem
TYPE_LOCK (struct btrfs_free_cluster)->lock
TYPE_LOCK (struct btrfs_free_cluster)->refill_lock

fs/btrfs/relocation.c adjust_block_group_remap_bytes() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.next 4096-ptr_max
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 &cache->dirty_list 1
DATA_SOURCE 0 cache $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->remap_mutex
LOCK2 &trans->transaction->dirty_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->remap_mutex
TYPE_LOCK (struct btrfs_transaction)->dirty_bgs_lock

fs/btrfs/relocation.c adjust_identity_remap_count() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.next 4096-ptr_max
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 &cache->dirty_list 1
DATA_SOURCE 0 cache $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &trans->transaction->dirty_bgs_lock
HALF_LOCKED2 &fs_info->remap_mutex
TYPE_LOCK (struct btrfs_transaction)->dirty_bgs_lock

fs/btrfs/relocation.c start_block_group_remapping() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.next 4096-ptr_max
PARAM_VALUE 0 cache->flags 0,2048-u64max
PARAM_VALUE 0 cache->free_space_lock.dep_map->name 0-255
PARAM_VALUE 0 cache->free_space_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 cache->free_space_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 cache->free_space_lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 cache->free_space_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 cache->fs_info->global_root_lock.dep_map->name 0-255
PARAM_VALUE 0 cache->fs_info->sb->s_cop->inode_info_offs 1632,1720,2632,2648
PARAM_VALUE 0 cache->identity_remap_count 1-u32max
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->using_free_space_bitmaps_cached 1
CAPPED_DATA 0 &cache->dirty_list 1
DATA_SOURCE 0 cache $2
BIT_INFO 0 cache->flags 0x800,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &fs_info->remap_mutex
LOCK2 &trans->transaction->dirty_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->remap_mutex
TYPE_LOCK (struct btrfs_transaction)->dirty_bgs_lock

fs/btrfs/block-group.c block_group_cache_tree_search() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 cache unit_byte
LOCK2 &info->block_group_cache_lock
HALF_LOCKED2 &info->cleaner_mutex
HALF_LOCKED2 &info->commit_root_sem
HALF_LOCKED2 &info->qgroup_rescan_lock
HALF_LOCKED2 &info->reclaim_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->block_group_cache_lock

fs/btrfs/block-group.c btrfs_cache_block_group() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->cached 1
PARAM_VALUE 0 cache->caching_ctl 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->block_group 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->count.refs.counter 2
PARAM_VALUE 0 cache->caching_ctl->list.next 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->list.prev 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->mutex.first_waiter 0
PARAM_VALUE 0 cache->caching_ctl->mutex.magic 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->mutex.owner.counter 0
PARAM_VALUE 0 cache->caching_ctl->progress.counter 0
PARAM_VALUE 0 cache->caching_ctl->wait.head.next 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->wait.head.prev 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->work.flags 0
PARAM_VALUE 0 cache->caching_ctl->work.func 2080431101377433600
PARAM_VALUE 0 cache->caching_ctl->work.ordered_func 0
PARAM_VALUE 0 cache->caching_ctl->work.ordered_list.next 4096-ptr_max
PARAM_VALUE 0 cache->caching_ctl->work.ordered_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->block_group_cache_lock.dep_map->name 0-255
PARAM_VALUE 0 cache->fs_info->block_group_cache_lock.owner (-1)
PARAM_VALUE 0 cache->fs_info->block_group_cache_lock.owner_cpu u32max
PARAM_VALUE 0 cache->fs_info->caching_block_groups.prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->caching_block_groups.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->caching_block_groups.prev->next->next 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
BUF_SIZE 0 cache->caching_ctl 400
DATA_SOURCE 0 cache $0
BIT_INFO 0 cache->flags 0x0,0xfffffffffffff7ff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &space_info->groups_sem

fs/btrfs/block-group.c btrfs_delete_unused_bgs() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.next 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl->work.timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.prev->next 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_hard 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_lazy 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_soft 0-1
PARAM_VALUE 0 cache->fs_info->sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->pinned 0
PARAM_VALUE 0 cache->space_info->fs_info->balance_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->type 0-1
PARAM_VALUE 0 cache->space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->start 0-18446744073709551614
PARAM_VALUE 0 *cache->fs_info->discard_ctl.work.timer->entry->next->pprev 1-u64max
PARAM_VALUE 0 *cache->fs_info->discard_ctl.work.timer->entry.pprev 4096-ptr_max
CAPPED_DATA 0 cache 1
CAPPED_DATA 0 cache->start 1
CAPPED_DATA 0 &cache->discard_list 1
CAPPED_DATA 0 &cache->list 1
PARAM_COMPARE 0 &cache->discard_list == $0->discard_list.next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->reclaim_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->reclaim_bgs_lock

fs/btrfs/block-group.c btrfs_link_bg_list() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.next 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info->unused_bgs_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->type 0-1
BUF_SIZE 0 cache (-1),1-s32max
BUF_SIZE 0 cache (-1),1-s32max
BUF_SIZE 0 cache->fs_info (-1),11312
CAPPED_DATA 0 cache 1
CAPPED_DATA 0 &cache->bg_list 1
DATA_SOURCE 0 cache $0
PARAM_COMPARE 0 &cache->bg_list == $0->bg_list.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 cache->free_space_ctl->block_group->full_stripe_len
NO_OVERFLOW_SIMPLE 0 cache->full_stripe_len
LOCK2 &fs_info->unused_bgs_lock
HALF_LOCKED2 &fs_info->chunk_mutex
HALF_LOCKED2 &fs_info->reclaim_bgs_lock
HALF_LOCKED2 &space_info->groups_sem
HALF_LOCKED2 &space_info->lock
HALF_LOCKED2 0 &cache->lock
TYPE_LOCK (struct btrfs_fs_info)->unused_bgs_lock

fs/btrfs/block-group.c btrfs_mark_bg_fully_remapped() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.next 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648,2712
PARAM_VALUE 0 cache->identity_remap_count 0
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->type 0-1
PARAM_VALUE 0 cache->space_info->lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 &cache->bg_list 1
DATA_SOURCE 0 cache $0
PARAM_COMPARE 0 &cache->bg_list == $0->bg_list.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->unused_bgs_lock
HALF_LOCKED2 &fs_info->remap_mutex
TYPE_LOCK (struct btrfs_fs_info)->unused_bgs_lock

fs/btrfs/block-group.c btrfs_mark_bg_unused() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.next 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info->sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648,2712
PARAM_VALUE 0 cache->fs_info->unused_bgs_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->type 0-1
BUF_SIZE 0 cache (-1)-s32max
BUF_SIZE 0 cache (-1)-s32max
BUF_SIZE 0 cache->fs_info (-1),11312
CAPPED_DATA 0 cache 1
CAPPED_DATA 0 &cache->bg_list 1
DATA_SOURCE 0 cache $0
PARAM_COMPARE 0 &cache->bg_list == $0->bg_list.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 cache->free_space_ctl->block_group->full_stripe_len
NO_OVERFLOW_SIMPLE 0 cache->full_stripe_len
LOCK2 &fs_info->unused_bgs_lock
HALF_LOCKED2 &fs_info->reclaim_bgs_lock
HALF_LOCKED2 &fs_info->remap_mutex
HALF_LOCKED2 &space_info->groups_sem
HALF_LOCKED2 &space_info->lock
HALF_LOCKED2 0 &cache->lock
TYPE_LOCK (struct btrfs_fs_info)->unused_bgs_lock

fs/btrfs/block-group.c btrfs_next_block_group() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->block_group_cache_lock.dep_map->name 0-255
PARAM_VALUE 0 cache->fs_info->discard_ctl->work.timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.block_group 0
PARAM_VALUE 0 cache->fs_info->discard_ctl.work->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.entry->pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.prev->next 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_hard 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_lazy 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_soft 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.lockdep_map->name 0-255
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 *cache->fs_info->discard_ctl.work.timer->entry->next->pprev 1-u64max
PARAM_VALUE 0 *cache->fs_info->discard_ctl.work.timer->entry.pprev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->block_group_cache_lock
TYPE_LOCK (struct btrfs_fs_info)->block_group_cache_lock

fs/btrfs/block-group.c btrfs_populate_fully_remapped_bgs_list() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.next 4096-ptr_max
PARAM_VALUE 0 cache->identity_remap_count 0
CAPPED_DATA 0 cache->start 1
CAPPED_DATA 0 &cache->bg_list 1
PARAM_COMPARE 0 &cache->bg_list == $0->bg_list.next
BIT_INFO 0 cache->flags 0x800,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
UNITS 0 cache unit_byte
LOCK2 &fs_info->unused_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->unused_bgs_lock

fs/btrfs/block-group.c btrfs_start_dirty_block_groups() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->dirty_list.next 4096-ptr_max
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 &cache->dirty_list 1
CAPPED_DATA 0 &cache->io_list 1
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &cur_trans->dirty_bgs_lock
LOCK2 &trans->transaction->cache_write_mutex
TYPE_LOCK (struct btrfs_transaction)->cache_write_mutex
TYPE_LOCK (struct btrfs_transaction)->dirty_bgs_lock

fs/btrfs/block-group.c btrfs_update_block_group() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.next 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->sb->s_cop->inode_info_offs 1632,1720,2632,2648
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->size_class 0
PARAM_VALUE 0 cache->space_info 4096-ptr_max
PARAM_VALUE 0 cache->space_info->lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 &cache->dirty_list 1
DATA_SOURCE 0 cache r btrfs_lookup_block_group
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &trans->transaction->dirty_bgs_lock
TYPE_LOCK (struct btrfs_transaction)->dirty_bgs_lock

fs/btrfs/block-group.c do_chunk_alloc() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->start 0-18446744073709551614
CAPPED_DATA 0 cache 1
CAPPED_DATA 0 cache->start 1
DATA_SOURCE 0 cache r btrfs_create_chunk
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->chunk_mutex
HALF_LOCKED2 &fs_info->ro_block_group_mutex
TYPE_LOCK (struct btrfs_fs_info)->chunk_mutex

fs/btrfs/zoned.c btrfs_load_block_group_zone_info() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->active_bg_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->active_bg_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->active_bg_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.next 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->bg_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->cluster_list.next 4096-ptr_max
PARAM_VALUE 0 cache->cluster_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->cluster_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->cluster_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->cluster_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.count.counter 0
PARAM_VALUE 0 cache->data_rwsem.dep_map->name 0-255
PARAM_VALUE 0 cache->data_rwsem.first_waiter 0
PARAM_VALUE 0 cache->data_rwsem.magic 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.osq.tail.counter 0
PARAM_VALUE 0 cache->data_rwsem.owner.counter 0
PARAM_VALUE 0 cache->dirty_list.next 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->dirty_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_index 0
PARAM_VALUE 0 cache->discard_list.next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->block_group 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->block_group->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->cache_writeout_mutex.dep_map->name 0-255
PARAM_VALUE 0 cache->free_space_ctl->cache_writeout_mutex.magic 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->extents_thresh 157
PARAM_VALUE 0 cache->free_space_ctl->trimming_ranges.next 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->trimming_ranges.next->next 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->trimming_ranges.prev 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->trimming_ranges.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->free_space_ctl->trimming_ranges.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->free_space_lock.dep_map->name 0-255
PARAM_VALUE 0 cache->free_space_lock.first_waiter 0
PARAM_VALUE 0 cache->free_space_lock.magic 4096-ptr_max
PARAM_VALUE 0 cache->free_space_lock.osq.tail.counter 0
PARAM_VALUE 0 cache->free_space_lock.owner.counter 0
PARAM_VALUE 0 cache->frozen.counter 0
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->mapping_tree_lock.dep_map->name 0-255
PARAM_VALUE 0 cache->fs_info->zone_size 1-u64max
PARAM_VALUE 0 cache->full_stripe_len 0-18446744073709486080
PARAM_VALUE 0 cache->io_list.next 4096-ptr_max
PARAM_VALUE 0 cache->io_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->io_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->io_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->io_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->list.next 4096-ptr_max
PARAM_VALUE 0 cache->list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->list.prev 4096-ptr_max
PARAM_VALUE 0 cache->list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->physical_map 4096-ptr_max
PARAM_VALUE 0 cache->physical_map->start 0-18446744073709551614
PARAM_VALUE 0 cache->ro_list.next 4096-ptr_max
PARAM_VALUE 0 cache->ro_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->ro_list.prev 4096-ptr_max
PARAM_VALUE 0 cache->ro_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->ro_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->start 0-18446744073709551614
CAPPED_DATA 0 cache->alloc_offset 1
CAPPED_DATA 0 cache->meta_write_pointer 1
CAPPED_DATA 0 cache->physical_map->start 1
CAPPED_DATA 0 cache->start 1
DATA_SOURCE 0 cache $0
PARAM_COMPARE 0 cache->alloc_offset <= $0->zone_capacity
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 cache->free_space_ctl->block_group->full_stripe_len
HALF_LOCKED2 &fs_info->chunk_mutex

fs/btrfs/zoned.c btrfs_schedule_zone_finish_bg() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->zone_finish_work.func 0-5456219147841110015,5456219147841110017-u64max
DATA_SOURCE 0 cache $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/zoned.c btrfs_zone_activate() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->zone_active_bgs_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->fs_info->zone_size 1-u64max
PARAM_VALUE 0 cache->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->space_info->groups_sem.first_waiter->type 0-1
BUF_SIZE 0 cache (-1)-s32max
BUF_SIZE 0 cache (-1)-s32max
DATA_SOURCE 0 cache $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 cache->fs_info->nodesize
NO_OVERFLOW_SIMPLE 0 cache->fs_info->sectorsize
NO_OVERFLOW_SIMPLE 0 cache->full_stripe_len
LOCK2 &fs_info->zone_active_bgs_lock
HALF_LOCKED2 &fs_info->chunk_mutex
HALF_LOCKED2 &space_info->groups_sem
TYPE_LOCK (struct btrfs_fs_info)->zone_active_bgs_lock

fs/btrfs/zoned.c btrfs_zone_finish_one_bg() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->alloc_offset 1-u64max
PARAM_VALUE 0 cache->discard_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl->work.timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_hard 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_lazy 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_soft 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.next->next 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.prev->prev 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.flags 0-4294967295
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_hard 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_lazy 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_soft 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.lockdep_map->name 0-255
PARAM_VALUE 0 cache->reserved 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &block_group->lock
LOCK2 &fs_info->zone_active_bgs_lock
TYPE_LOCK (struct btrfs_block_group)->lock
TYPE_LOCK (struct btrfs_fs_info)->zone_active_bgs_lock

fs/btrfs/zoned.c check_bg_is_active() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->fs_info 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &fs_info->zoned_meta_io_lock

fs/btrfs/extent-tree.c btrfs_grab_block_group() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->discard_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_hard 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_lazy 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_soft 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.next->next 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.prev->prev 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.flags 0-4294967295
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.lockdep_map->name 0-255
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.wq->saved_min_active s32min-s32max
PARAM_VALUE 0 cache->ro 0
DATA_SOURCE 0 cache $0
BIT_INFO 0 cache->flags 0x0,0xfffffffffffff7ff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &space_info->groups_sem
HALF_LOCKED2 &fs_info->remap_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_space_info)->groups_sem

fs/btrfs/extent-tree.c btrfs_lock_cluster() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 1-u64max
PARAM_VALUE 0 cache->data_rwsem.dep_map->name 0-255
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 cache->data_rwsem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->data_rwsem.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 cache->discard_list.next->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.next->prev 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->next 4096-ptr_max
PARAM_VALUE 0 cache->discard_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl->work.timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_hard 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_lazy 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.timer.is_soft 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.next->next 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.entry.prev->prev 1-u64max
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.flags 0-4294967295
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_hard 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_lazy 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_queued 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.is_soft 0-1
PARAM_VALUE 0 cache->fs_info->discard_ctl.work.work.lockdep_map->name 0-255
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cluster->refill_lock
LOCK2 &space_info->groups_sem
HALF_LOCKED2 &fs_info->remap_mutex
HALF_LOCKED2 &root->objectid_mutex
TYPE_LOCK (struct btrfs_free_cluster)->refill_lock
TYPE_LOCK (struct btrfs_space_info)->groups_sem

fs/btrfs/discard.c __add_to_discard_list() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->discard_index s32min-(-1),1-s32max
PARAM_VALUE 0 cache->discard_list.next 4096-ptr_max
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
BUF_SIZE 0 cache (-1),1-s32max
BUF_SIZE 0 cache (-1),1-s32max
CAPPED_DATA 0 cache 1
CAPPED_DATA 0 &cache->discard_list 1
DATA_SOURCE 0 cache $1
PARAM_COMPARE 0 &cache->discard_list == $0->discard_list.next
NOSPEC 0 cache->discard_cursor
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 cache->discard_cursor 1-s32max[c]
NO_OVERFLOW_SIMPLE 0 cache->alloc_offset
NO_OVERFLOW_SIMPLE 0 cache->pinned
NO_OVERFLOW_SIMPLE 0 cache->reserved
LOCK2 &discard_ctl->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_discard_ctl)->lock

fs/btrfs/discard.c add_to_discard_unused_list() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
PARAM_VALUE 0 cache->data_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->data_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 cache->discard_index 0
PARAM_VALUE 0 cache->discard_state 2
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->remap_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 cache->fs_info->sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648,2712
PARAM_VALUE 0 cache->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 cache->io_ctl.inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
BUF_SIZE 0 cache (-1),1-s32max
BUF_SIZE 0 cache (-1),1-s32max
BUF_SIZE 0 cache->fs_info (-1),11312
CAPPED_DATA 0 cache 1
CAPPED_DATA 0 &cache->discard_list 1
DATA_SOURCE 0 cache $1
NOSPEC 0 cache->discard_cursor
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 cache->discard_cursor 1-s32max[c]
NO_OVERFLOW_SIMPLE 0 cache->alloc_offset
NO_OVERFLOW_SIMPLE 0 cache->full_stripe_len
NO_OVERFLOW_SIMPLE 0 cache->pinned
NO_OVERFLOW_SIMPLE 0 cache->reserved
LOCK2 &discard_ctl->lock
TYPE_LOCK (struct btrfs_discard_ctl)->lock

fs/btrfs/discard.c peek_discard_list() -> btrfs_get_block_group()

Type Parameter Key Value
PARAM_VALUE 0 cache 4096-ptr_max
DATA_SOURCE 0 cache r find_next_block_group
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &discard_ctl->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_discard_ctl)->lock