Defined in 1 files as a function:
Referenced in 7 files:
- fs/btrfs/backref.c
- fs/btrfs/ctree.c
- fs/btrfs/locking.c, line 267
- fs/btrfs/qgroup.c
- fs/btrfs/ref-verify.c, line 558
- fs/btrfs/tree-mod-log.c
- include/trace/events/btrfs.h, line 3200
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 |