Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 6 files:
- fs/btrfs/backref.c
- fs/btrfs/ctree.c
- fs/btrfs/locking.c
- fs/btrfs/locking.h, line 218
- fs/btrfs/tree-mod-log.c
- include/trace/events/btrfs.h, line 3244
Smatch caller information:
fs/btrfs/qgroup.c btrfs_tree_unlock_rw() -> btrfs_tree_read_unlock()
| 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 | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &eb->lock | ||
| HALF_LOCKED2 | &fs_info->cleaner_mutex | ||
| HALF_LOCKED2 | &root_eb->lock |
fs/btrfs/tree-mod-log.c btrfs_get_old_root() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info->tree_mod_log_lock.dep_map->name | 0-255 |
| 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 |
| PARAM_VALUE | 0 | eb->refs.refs.counter | (-1073741824),0-s32max |
| CAPPED_DATA | 0 | eb | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/btrfs/tree-mod-log.c btrfs_get_old_root() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info | 4096-ptr_max |
| 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->nodesize | 0-65536 |
| 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.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 |
| CAPPED_DATA | 0 | eb | 1 |
| DATA_SOURCE | 0 | eb | r read_tree_block |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | 0 | &eb->lock | |
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/tree-mod-log.c btrfs_get_old_root() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info->tree_mod_log_lock.dep_map->name | 0-255 |
| 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 |
| PARAM_VALUE | 0 | eb->refs.refs.counter | (-1073741824),0-s32max |
| CAPPED_DATA | 0 | eb | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/btrfs/tree-mod-log.c btrfs_get_old_root() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info->nodesize | 0-65536 |
| PARAM_VALUE | 0 | eb->fs_info->tree_mod_log_lock.dep_map->name | 0-255 |
| 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 |
| PARAM_VALUE | 0 | eb->refs.refs.counter | (-1073741824),0-s32max |
| CAPPED_DATA | 0 | eb | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/btrfs/tree-mod-log.c btrfs_tree_mod_log_rewind() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info->eb_leak_lock.rlock.dep_map->name | 0-255 |
| 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->start | 1 |
| DATA_SOURCE | 0 | eb | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 0 | eb->len | |
| NO_OVERFLOW_SIMPLE | 0 | eb->start | |
| LOCK2 | 0 | &eb->lock | |
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/tree-mod-log.c btrfs_tree_mod_log_rewind() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info->eb_leak_lock.rlock.dep_map->name | 0-255 |
| 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->start | 1 |
| DATA_SOURCE | 0 | eb | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 0 | eb->len | |
| NO_OVERFLOW_SIMPLE | 0 | eb->start | |
| LOCK2 | 0 | &eb->lock | |
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/tree-mod-log.c btrfs_tree_mod_log_rewind() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info | 4096-ptr_max |
| PARAM_VALUE | 0 | eb->fs_info->eb_leak_lock.rlock.dep_map->name | 0-255 |
| 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->start | 1 |
| DATA_SOURCE | 0 | eb | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 0 | eb->len | |
| NO_OVERFLOW_SIMPLE | 0 | eb->start | |
| LOCK2 | 0 | &eb->lock | |
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/locking.c btrfs_read_lock_root_node() -> btrfs_tree_read_unlock()
| 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 |
| PARAM_VALUE | 0 | eb->refs.refs.counter | (-1073741824),0-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | 0 | &eb->lock | |
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/locking.c btrfs_tree_unlock_rw() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 1-u64max |
| DATA_SOURCE | 0 | eb | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &fs_info->cleaner_mutex |
fs/btrfs/locking.c btrfs_try_read_lock_root_node() -> btrfs_tree_read_unlock()
| 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 |
| NOCHECK_CALL | |||
| LOCK2 | 0 | &eb->lock | |
| HALF_LOCKED2 | &cow->lock | ||
| HALF_LOCKED2 | &fs_info->commit_root_sem | ||
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/extent-tree.c btrfs_tree_unlock_rw() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb->lock.first_waiter->type | 0-1 |
| DATA_SOURCE | 0 | eb | $0 |
| 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/ref-verify.c btrfs_tree_unlock_rw() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 1-u64max |
| DATA_SOURCE | 0 | eb | $0 |
| NOCHECK_CALL |
fs/btrfs/ctree.c btrfs_next_old_leaf() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| 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 | &next->lock | ||
| HALF_LOCKED2 | &pool->lock |
fs/btrfs/ctree.c btrfs_search_slot_get_root() -> btrfs_tree_read_unlock()
| 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 |
| PARAM_VALUE | 0 | eb->refs.refs.counter | (-1073741824),0-s32max |
| CAPPED_DATA | 0 | eb | 1 |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &cow->lock | ||
| HALF_LOCKED2 | &fs_info->commit_root_sem |
fs/btrfs/ctree.c btrfs_tree_unlock_rw() -> btrfs_tree_read_unlock()
| 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 |
| CAPPED_DATA | 0 | eb | 1 |
| DATA_SOURCE | 0 | eb | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/btrfs/ctree.c read_block_for_search() -> btrfs_tree_read_unlock()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | eb | 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.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 |
| CAPPED_DATA | 0 | eb | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | 0 | &eb->lock | |
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/backref.c add_missing_keys() -> btrfs_tree_read_unlock()
| 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.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 read_tree_block |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | 0 | &eb->lock | |
| HALF_LOCKED2 | &fs_info->commit_root_sem | ||
| TYPE_LOCK | (struct extent_buffer)->lock |
fs/btrfs/backref.c btrfs_ref_to_path() -> btrfs_tree_read_unlock()
| 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 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 0 | eb->start |
fs/btrfs/backref.c find_parent_nodes() -> btrfs_tree_read_unlock()
| 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.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 |
| CAPPED_DATA | 0 | eb | 1 |
| DATA_SOURCE | 0 | eb | r read_tree_block |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | 0 | &eb->lock | |
| TYPE_LOCK | (struct extent_buffer)->lock |