Defined in 1 files as a function:
Referenced in 12 files:
- fs/btrfs/ctree.c
- fs/btrfs/defrag.c, line 406
- fs/btrfs/disk-io.c, line 4822
- fs/btrfs/extent-tree.c
- fs/btrfs/extent_io.c
- fs/btrfs/free-space-tree.c, line 1318
- fs/btrfs/ioctl.c, line 668
- fs/btrfs/locking.c, line 244
- fs/btrfs/qgroup.c, line 1429
- fs/btrfs/relocation.c
- fs/btrfs/tree-log.c, line 2934
- include/trace/events/btrfs.h, line 3206
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 |