Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

fs/btrfs/qgroup.c btrfs_qgroup_trace_subtree() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
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
LOCK2 &fs_info->cleaner_mutex
LOCK2 &root_eb->lock
HALF_LOCKED2 &next->lock
HALF_LOCKED2 &node->lock
HALF_LOCKED2 0 &eb->lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex
TYPE_LOCK (struct extent_buffer)->lock

fs/btrfs/qgroup.c qgroup_trace_extent_swap() -> btrfs_tree_read_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
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &eb->lock
HALF_LOCKED2 &trans->fs_info->chunk_mutex
HALF_LOCKED2 &trans->fs_info->commit_root_sem
HALF_LOCKED2 &trans->fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &trans->fs_info->fs_roots_radix_lock
HALF_LOCKED2 &trans->fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &trans->fs_info->qgroup_lock
HALF_LOCKED2 &trans->fs_info->remap_mutex
HALF_LOCKED2 &trans->fs_info->unused_bg_unpin_mutex
HALF_LOCKED2 &trans->transaction->cache_write_mutex
HALF_LOCKED2 &trans->transaction->delayed_refs.lock

fs/btrfs/qgroup.c qgroup_trace_new_subtree_blocks() -> btrfs_tree_read_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
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &trans->fs_info->commit_root_sem
HALF_LOCKED2 &trans->fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &trans->fs_info->fs_roots_radix_lock
HALF_LOCKED2 &trans->fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &trans->fs_info->qgroup_lock
HALF_LOCKED2 &trans->fs_info->unused_bg_unpin_mutex
HALF_LOCKED2 &trans->transaction->delayed_refs.lock

fs/btrfs/tree-mod-log.c btrfs_get_old_root() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
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
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r read_tree_block
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/tree-mod-log.c btrfs_get_old_root() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->folio_shift 12
PARAM_VALUE 0 eb->folio_size 4096
PARAM_VALUE 0 eb->fs_info 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->allocated_ebs.next 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->allocated_ebs.next->next 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->allocated_ebs.next->prev 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->eb_leak_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 eb->leak_list.next 4096-ptr_max
PARAM_VALUE 0 eb->leak_list.prev 4096-ptr_max
PARAM_VALUE 0 eb->len 0-65536
PARAM_VALUE 0 eb->lock.count.counter 0
PARAM_VALUE 0 eb->lock.dep_map->name 0-255
PARAM_VALUE 0 eb->lock.first_waiter 0
PARAM_VALUE 0 eb->lock.magic 4096-ptr_max
PARAM_VALUE 0 eb->lock.osq.tail.counter 0
PARAM_VALUE 0 eb->lock.owner.counter 0
PARAM_VALUE 0 eb->refs.refs.counter 1
PARAM_VALUE 0 eb->writeback_inhibitors.counter 0
CAPPED_DATA 0 eb 1
CAPPED_DATA 0 eb->len 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 eb->len
NO_OVERFLOW_SIMPLE 0 eb->start

fs/btrfs/tree-mod-log.c btrfs_tree_mod_log_rewind() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->folio_shift 12
PARAM_VALUE 0 eb->folio_size 4096
PARAM_VALUE 0 eb->fs_info 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->allocated_ebs.next 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->allocated_ebs.next->next 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->allocated_ebs.next->prev 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->eb_leak_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 eb->leak_list.next 4096-ptr_max
PARAM_VALUE 0 eb->leak_list.prev 4096-ptr_max
PARAM_VALUE 0 eb->len 0-65536
PARAM_VALUE 0 eb->lock.count.counter 0
PARAM_VALUE 0 eb->lock.dep_map->name 0-255
PARAM_VALUE 0 eb->lock.first_waiter 0
PARAM_VALUE 0 eb->lock.magic 4096-ptr_max
PARAM_VALUE 0 eb->lock.osq.tail.counter 0
PARAM_VALUE 0 eb->lock.owner.counter 0
PARAM_VALUE 0 eb->refs.refs.counter 1
PARAM_VALUE 0 eb->writeback_inhibitors.counter 0
CAPPED_DATA 0 eb 1
CAPPED_DATA 0 eb->len 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 eb->len
NO_OVERFLOW_SIMPLE 0 eb->start

fs/btrfs/locking.c btrfs_read_lock_root_node() -> btrfs_tree_read_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
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/ref-verify.c walk_down_tree() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
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
HALF_LOCKED2 0 &eb->lock

fs/btrfs/ctree.c btrfs_next_old_leaf() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &caching_ctl->mutex
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &eb->lock

fs/btrfs/ctree.c btrfs_next_old_leaf() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.dep_map->name 0-255
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &caching_ctl->mutex
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &eb->lock

fs/btrfs/ctree.c btrfs_search_forward() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->fs_info->nodesize 0-65536
PARAM_VALUE 0 eb->lock.dep_map->name 0-255
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r btrfs_read_node_slot
NOCHECK_CALL
HALF_LOCKED2 &inode->vfs_inode.i_rwsem
HALF_LOCKED2 0 &eb->lock

fs/btrfs/ctree.c btrfs_search_old_slot() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.dep_map->name 0-255
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->fs_info->commit_root_sem
HALF_LOCKED2 0 &eb->lock

fs/btrfs/ctree.c read_block_for_search() -> btrfs_tree_read_lock()

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

fs/btrfs/ctree.c read_block_for_search() -> btrfs_tree_read_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

fs/btrfs/backref.c add_missing_keys() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
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 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r read_tree_block
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fs_info->commit_root_sem

fs/btrfs/backref.c find_parent_nodes() -> btrfs_tree_read_lock()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
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
CAPPED_DATA 0 eb 1
DATA_SOURCE 0 eb r read_tree_block
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL