Defined in 1 files as a function:

Referenced in 12 files:

Smatch caller information:

fs/btrfs/tree-log.c clean_log_buffer() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->btree_inode->i_mapping->host->i_sb->s_export_op->fh_to_dentry 0,447817974243774464,687732489194512384,742201802719268864,868497899885588480,1471448175530500096,2021658383390310400,2445877819203563520,2512819722689847296,2649270699546726400,2761259683714371584,2893332316235677696-s64max
PARAM_VALUE 0 eb->fs_info->stripe_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->fs_info->stripe_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
DATA_SOURCE 0 eb $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fs_info->transaction_kthread_mutex

fs/btrfs/free-space-tree.c btrfs_delete_free_space_tree() -> btrfs_tree_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/extent_io.c btrfs_zoned_release_dirty_metadata() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 1-u64max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
DATA_SOURCE 0 eb r eb_batch_next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fs_info->transaction_kthread_mutex
HALF_LOCKED2 &fs_info->zoned_meta_io_lock

fs/btrfs/extent_io.c lock_extent_buffer_for_io() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
DATA_SOURCE 0 eb $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/extent_io.c lock_extent_buffer_for_io() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 0 eb->lock_owner 0
DATA_SOURCE 0 eb $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/qgroup.c btrfs_quota_disable() -> btrfs_tree_lock()

Type Parameter Key Value
CAPABLE 0 21
NOCHECK_CALL
LOCK2 &fs_info->cleaner_mutex
LOCK2 &fs_info->qgroup_ioctl_lock
LOCK2 &fs_info->subvol_sem
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex
TYPE_LOCK (struct btrfs_fs_info)->qgroup_ioctl_lock
TYPE_LOCK (struct btrfs_fs_info)->subvol_sem

fs/btrfs/locking.c btrfs_lock_root_node() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 0 eb->refs.refs.counter (-1073741824),0-s32max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &fs_info->reloc_mutex

fs/btrfs/relocation.c do_relocation() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r btrfs_read_node_slot
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 eb->len
NO_OVERFLOW_SIMPLE 0 eb->start
LOCK2 &fs_info->cleaner_mutex
HALF_LOCKED2 &cow->lock
HALF_LOCKED2 &fs_info->reclaim_bgs_lock
HALF_LOCKED2 0 &eb->lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex
TYPE_LOCK (struct btrfs_fs_info)->reclaim_bgs_lock

fs/btrfs/relocation.c replace_path() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r btrfs_read_node_slot
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 eb->len
NO_OVERFLOW_SIMPLE 0 eb->start
HALF_LOCKED2 &cow->lock
HALF_LOCKED2 0 &eb->lock

fs/btrfs/defrag.c btrfs_realloc_node() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r btrfs_read_node_slot
CAPABLE 0 21
NOCHECK_CALL

fs/btrfs/disk-io.c btrfs_destroy_marked_extents() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
DATA_SOURCE 0 eb r find_extent_buffer
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fs_info->transaction_kthread_mutex

fs/btrfs/ioctl.c create_subvol() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 eb->lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 0 eb->lock_owner 0
PARAM_VALUE 0 eb->log_index (-1)-1
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r btrfs_alloc_tree_block
NOCHECK_CALL
LOCK2 &fs_info->subvol_sem
TYPE_LOCK (struct btrfs_fs_info)->subvol_sem

fs/btrfs/extent-tree.c btrfs_drop_snapshot() -> btrfs_tree_lock()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &fs_info->cleaner_mutex

fs/btrfs/extent-tree.c check_next_block_uptodate() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->block_group_cache_lock.dep_map->name 0-255
PARAM_VALUE 0 eb->fs_info->dev_replace.bio_counter.lock.dep_map->name 0-255
PARAM_VALUE 0 eb->fs_info->dev_replace.bio_counter.lock.owner (-1)
PARAM_VALUE 0 eb->fs_info->dev_replace.bio_counter.lock.owner_cpu u32max
PARAM_VALUE 0 eb->fs_info->dev_replace.replace_wait.head.prev->next 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->dev_replace.replace_wait.head.prev->next->next 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->mapping_tree_lock.dep_map->name 0-255
PARAM_VALUE 0 eb->fs_info->stripe_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->fs_info->stripe_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb $4
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->cleaner_mutex
HALF_LOCKED2 &next->lock
HALF_LOCKED2 &node->lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex

fs/btrfs/extent-tree.c do_walk_down() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r btrfs_find_create_tree_block
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->cleaner_mutex
HALF_LOCKED2 &next->lock
HALF_LOCKED2 &node->lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex

fs/btrfs/extent-tree.c walk_up_proc() -> btrfs_tree_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->cleaner_mutex
HALF_LOCKED2 &node->lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex

fs/btrfs/extent-tree.c walk_up_proc() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fs_info->cleaner_mutex
HALF_LOCKED2 &node->lock
HALF_LOCKED2 0 &eb->lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex

fs/btrfs/ctree.c promote_child_to_root() -> btrfs_tree_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r btrfs_read_node_slot
NOCHECK_CALL