Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

fs/btrfs/volumes.c btrfs_remove_chunk() -> btrfs_create_chunk()

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->balance_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->priority_tickets.prev->next 643370198843097104
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->priority_tickets.prev->next->next 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->tickets.prev 643370198843097104
PARAM_VALUE 0 trans->fs_info->chunk_mutex.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 trans->fs_info->chunk_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->delayed_refs_rsv.full 0
PARAM_VALUE 0 trans->fs_info->fs_devices 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->fs_devices->device_list_mutex.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->fs_devices->device_list_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 trans->fs_info->fs_devices->device_list_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 trans->fs_info->fs_devices->per_profile_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_block_rsv.full 1
PARAM_VALUE 0 trans->fs_info->global_block_rsv.reserved 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.size 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->force_alloc 2
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_root_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->mapping_tree_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->profiles_lock.seqcount.seqcount.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->ref_verify_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->super_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->new_bgs.prev->next 4096-ptr_max
PARAM_VALUE 0 trans->new_bgs.prev->next->next 4096-ptr_max
PARAM_VALUE 0 trans->transaction->aborted s32min-(-27),(-17),(-12),(-5),(-2)
PARAM_VALUE 0 trans->transaction->dirty_pages.inode->delalloc_inodes.next->prev 4096-ptr_max
PARAM_VALUE 0 trans->transaction->dirty_pages.inode->root->delalloc_root.next->prev 4096-ptr_max
PARAM_VALUE 0 trans->transaction->pinned_extents.inode->delalloc_inodes.next->prev 4096-ptr_max
PARAM_VALUE 0 trans->transaction->pinned_extents.inode->root->delalloc_root.next->prev 4096-ptr_max
PARAM_VALUE 1 space_info 4096-ptr_max
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 space_info r btrfs_find_space_info
DATA_SOURCE 2 type r btrfs_system_alloc_profile
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->chunk_mutex
HALF_LOCKED2 &fs_info->reclaim_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->chunk_mutex
TYPE_LOCK (struct btrfs_fs_info)->reclaim_bgs_lock

fs/btrfs/volumes.c init_first_rw_device() -> btrfs_create_chunk()

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->balance_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->fs_devices 4096-ptr_max
PARAM_VALUE 1 space_info 4096-ptr_max
BUF_SIZE 0 trans (-1),4,24,64,168-s32max
BUF_SIZE 0 trans (-1),4,24,64,168-s32max
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 space_info r btrfs_find_space_info
DATA_SOURCE 2 type r btrfs_metadata_alloc_profile
CAPABLE 0 21
LOCK2 &fs_info->chunk_mutex
LOCK2 &sb->s_umount
LOCK2 global &uuid_mutex
TYPE_LOCK (struct btrfs_fs_info)->chunk_mutex
TYPE_LOCK (struct super_block)->s_umount

fs/btrfs/volumes.c init_first_rw_device() -> btrfs_create_chunk()

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->balance_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->delayed_refs_rsv.full 0
PARAM_VALUE 0 trans->fs_info->fs_devices 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->fs_devices->per_profile_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_block_rsv.full 1
PARAM_VALUE 0 trans->fs_info->global_block_rsv.reserved 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.size 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->force_alloc 2
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_root_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->mapping_tree_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->mapping_tree_lock.owner (-1)
PARAM_VALUE 0 trans->fs_info->mapping_tree_lock.owner_cpu u32max
PARAM_VALUE 0 trans->fs_info->mapping_tree_lock.raw_lock.wlocked 0
PARAM_VALUE 0 trans->fs_info->profiles_lock.seqcount.seqcount.dep_map->name 0-255
PARAM_VALUE 0 trans->new_bgs.prev 4096-ptr_max
PARAM_VALUE 0 trans->new_bgs.prev->next 4096-ptr_max
PARAM_VALUE 0 trans->new_bgs.prev->next->next 4096-ptr_max
PARAM_VALUE 1 space_info 4096-ptr_max
BUF_SIZE 0 trans (-1),4,24,64,168-s32max
BUF_SIZE 0 trans (-1),4,24,64,168-s32max
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 space_info r btrfs_find_space_info
DATA_SOURCE 2 type r btrfs_system_alloc_profile
CAPABLE 0 21
PARAM_COMPARE 0 &trans->fs_info->fs_devices->alloc_list != $0->fs_info->fs_devices->alloc_list.next
LOCK2 &fs_info->chunk_mutex
LOCK2 &sb->s_umount
LOCK2 global &uuid_mutex
TYPE_LOCK (struct btrfs_fs_info)->chunk_mutex
TYPE_LOCK (struct super_block)->s_umount

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

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->balance_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->priority_tickets.prev->next 643370198843097104
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->priority_tickets.prev->next->next 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->tickets.prev 643370198843097104
PARAM_VALUE 0 trans->fs_info->chunk_mutex.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 trans->fs_info->chunk_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 trans->fs_info->chunk_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 trans->fs_info->chunk_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->delayed_refs_rsv.full 0
PARAM_VALUE 0 trans->fs_info->fs_devices->per_profile_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_block_rsv.full 1
PARAM_VALUE 0 trans->fs_info->global_block_rsv.reserved 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.size 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->force_alloc 2
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_root_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->profiles_lock.seqcount.seqcount.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->super_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->new_bgs.prev->next 4096-ptr_max
PARAM_VALUE 0 trans->new_bgs.prev->next->next 4096-ptr_max
PARAM_VALUE 0 trans->transaction->aborted s32min-(-27),(-17),(-12),(-5),(-2)
PARAM_VALUE 1 space_info 4096-ptr_max
PARAM_VALUE 1 space_info->chunk_alloc 1
PARAM_VALUE 1 space_info->full 0
PARAM_VALUE 1 space_info->lock.rlock.dep_map->name 0-255
BUF_SIZE 0 trans (-1),1-s32max
BUF_SIZE 0 trans (-1),1-s32max
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 space_info $1
DATA_SOURCE 2 type $2
BIT_INFO 2 type 0x0,0xfffffffffffffffd
BIT_INFO 2 type 0x0,0xfffffffffffffffd
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 space_info->bytes_may_use
LOCK2 &fs_info->chunk_mutex
HALF_LOCKED2 &fs_info->ro_block_group_mutex
TYPE_LOCK (struct btrfs_fs_info)->chunk_mutex

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

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->balance_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->priority_tickets.prev->next 643370198843097104
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->priority_tickets.prev->next->next 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->chunk_block_rsv.space_info->tickets.prev 643370198843097104
PARAM_VALUE 0 trans->fs_info->chunk_mutex.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 trans->fs_info->chunk_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 trans->fs_info->chunk_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 trans->fs_info->chunk_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->delayed_refs_rsv.full 0
PARAM_VALUE 0 trans->fs_info->fs_devices 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->fs_devices->per_profile_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_block_rsv.full 1
PARAM_VALUE 0 trans->fs_info->global_block_rsv.reserved 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.size 0-536870912
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->force_alloc 2
PARAM_VALUE 0 trans->fs_info->global_block_rsv.space_info->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->global_root_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->mapping_tree_lock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->profiles_lock.seqcount.seqcount.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->super_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->new_bgs.prev->next 4096-ptr_max
PARAM_VALUE 0 trans->new_bgs.prev->next->next 4096-ptr_max
PARAM_VALUE 0 trans->transaction->aborted s32min-(-27),(-17),(-12),(-5),(-2)
PARAM_VALUE 1 space_info 4096-ptr_max
BUF_SIZE 0 trans (-1),1-s32max
BUF_SIZE 0 trans (-1),1-s32max
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 space_info r btrfs_find_space_info
DATA_SOURCE 2 type r btrfs_system_alloc_profile
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->chunk_mutex
HALF_LOCKED2 &fs_info->ro_block_group_mutex
TYPE_LOCK (struct btrfs_fs_info)->chunk_mutex

fs/btrfs/block-group.c reserve_chunk_space() -> btrfs_create_chunk()

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->balance_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 trans->fs_info->chunk_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->chunk_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->fs_devices 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->remap_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->remap_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->stripe_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->stripe_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 1 space_info 4096-ptr_max
BUF_SIZE 0 trans (-1),1-s32max
BUF_SIZE 0 trans (-1),1-s32max
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 space_info r btrfs_find_space_info
DATA_SOURCE 2 type r btrfs_system_alloc_profile
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 trans->transaction->pinned_extents.inode->vfs_inode.i_bytes
LOCK2 &fs_info->chunk_mutex
TYPE_LOCK (struct btrfs_fs_info)->chunk_mutex