Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

fs/btrfs/tree-log.c btrfs_sync_log() -> btrfs_alloc_log_tree_node()

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->transaction->dirty_pages.inode->delalloc_inodes.next->prev 4096-ptr_max
PARAM_VALUE 0 trans->transaction->dirty_pages.inode->root->delalloc_root.next->prev 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->node 0
BUF_SIZE 0 trans (-1),4,24,64,168-s32max
BUF_SIZE 0 trans (-1),4,24,64,168-s32max
DATA_SOURCE 0 trans $0
PARAM_COMPARE 0 trans->fs_info->last_trans_log_full_commit != $0->transid
RX_PATH
LOCK2 &fs_info->tree_root->log_mutex
TYPE_LOCK (struct btrfs_root)->log_mutex

fs/btrfs/disk-io.c btrfs_add_log_tree() -> btrfs_alloc_log_tree_node()

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->commit_root_sem.first_waiter->type 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 trans->fs_info->tree_root->node->lock.first_waiter->type 0-1
PARAM_VALUE 0 trans->in_fsync 1
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->block_rsv 0,4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.next->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.prev 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.prev->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->delalloc_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->delalloc_mutex.first_waiter 0
PARAM_VALUE 1 root->delalloc_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->delalloc_mutex.owner.counter 0
PARAM_VALUE 1 root->delalloc_root.next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.next->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.prev 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.prev->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->delayed_nodes.xa_flags 0
PARAM_VALUE 1 root->delayed_nodes.xa_head 0
PARAM_VALUE 1 root->dirty_list.next 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.prev 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->fs_info 4096-ptr_max
PARAM_VALUE 1 root->inodes.xa_flags 0
PARAM_VALUE 1 root->inodes.xa_head 0
PARAM_VALUE 1 root->leak_list.next 4096-ptr_max
PARAM_VALUE 1 root->leak_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->leak_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->leak_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->log_commit_wait 4096-ptr_max
PARAM_VALUE 1 root->log_ctxs 4096-ptr_max
PARAM_VALUE 1 root->log_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->log_mutex.first_waiter 0
PARAM_VALUE 1 root->log_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->log_mutex.osq.tail.counter 0
PARAM_VALUE 1 root->log_mutex.owner.counter 0
PARAM_VALUE 1 root->log_transid_committed (-1)
PARAM_VALUE 1 root->log_writer_wait.head.next 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.next->next 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.prev 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.prev->next 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->log_writers.counter 0
PARAM_VALUE 1 root->nr_swapfiles.counter 0
PARAM_VALUE 1 root->objectid_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->objectid_mutex.first_waiter 0
PARAM_VALUE 1 root->objectid_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->objectid_mutex.owner.counter 0
PARAM_VALUE 1 root->ordered_extent_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->ordered_extent_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.next 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.next->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.prev 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.prev->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.next 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.next->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.prev 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.prev->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.next 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.next->next 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.prev 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.prev->next 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->refs.refs.counter 1
PARAM_VALUE 1 root->reloc_dirty_list.next 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.prev 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->root_key.objectid 18446744073709551610
PARAM_VALUE 1 root->root_key.offset 18446744073709551610
PARAM_VALUE 1 root->root_key.type 132
PARAM_VALUE 1 root->root_list.next 4096-ptr_max
PARAM_VALUE 1 root->root_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->root_list.prev 4096-ptr_max
PARAM_VALUE 1 root->root_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->root_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->snapshot_force_cow.counter 0
PARAM_VALUE 1 root->swapped_blocks->blocks 4096-ptr_max
PARAM_VALUE 1 root->swapped_blocks.swapped 0
BUF_SIZE 0 trans (-1),1-s32max
BUF_SIZE 0 trans (-1),1-s32max
BUF_SIZE 1 root 2880
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 root r alloc_log_tree
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 root->dirty_log_pages.fs_info->nodesize
NO_OVERFLOW_SIMPLE 1 root->dirty_log_pages.fs_info->sectorsize
NO_OVERFLOW_SIMPLE 1 root->fs_info->nodesize
NO_OVERFLOW_SIMPLE 1 root->fs_info->sectorsize
NO_OVERFLOW_SIMPLE 1 root->log_csum_range.fs_info->nodesize
NO_OVERFLOW_SIMPLE 1 root->log_csum_range.fs_info->sectorsize
LOCK2 &root->log_mutex
HALF_LOCKED2 &inode->i_mmap_lock
HALF_LOCKED2 &inode->vfs_inode.i_rwsem
TYPE_LOCK (struct btrfs_root)->log_mutex

fs/btrfs/disk-io.c btrfs_init_log_root_tree() -> btrfs_alloc_log_tree_node()

Type Parameter Key Value
PARAM_VALUE 0 trans 4096-ptr_max
PARAM_VALUE 0 trans->in_fsync 1
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->block_rsv 0,4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.next->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.prev 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.prev->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_inodes.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->delalloc_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->delalloc_mutex.first_waiter 0
PARAM_VALUE 1 root->delalloc_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->delalloc_mutex.owner.counter 0
PARAM_VALUE 1 root->delalloc_root.next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.next->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.prev 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.prev->next 4096-ptr_max
PARAM_VALUE 1 root->delalloc_root.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->delayed_nodes.xa_flags 0
PARAM_VALUE 1 root->delayed_nodes.xa_head 0
PARAM_VALUE 1 root->dirty_list.next 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.prev 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->dirty_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->fs_info 4096-ptr_max
PARAM_VALUE 1 root->inodes.xa_flags 0
PARAM_VALUE 1 root->inodes.xa_head 0
PARAM_VALUE 1 root->leak_list.next 4096-ptr_max
PARAM_VALUE 1 root->leak_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->leak_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->leak_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->log_commit_wait 4096-ptr_max
PARAM_VALUE 1 root->log_ctxs 4096-ptr_max
PARAM_VALUE 1 root->log_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->log_mutex.first_waiter 0
PARAM_VALUE 1 root->log_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->log_mutex.osq.tail.counter 0
PARAM_VALUE 1 root->log_mutex.owner.counter 0
PARAM_VALUE 1 root->log_transid_committed (-1)
PARAM_VALUE 1 root->log_writer_wait.head.next 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.next->next 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.prev 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.prev->next 4096-ptr_max
PARAM_VALUE 1 root->log_writer_wait.head.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->log_writers.counter 0
PARAM_VALUE 1 root->nr_swapfiles.counter 0
PARAM_VALUE 1 root->objectid_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->objectid_mutex.first_waiter 0
PARAM_VALUE 1 root->objectid_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->objectid_mutex.owner.counter 0
PARAM_VALUE 1 root->ordered_extent_mutex.dep_map->name 0-255
PARAM_VALUE 1 root->ordered_extent_mutex.magic 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.next 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.next->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.prev 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.prev->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_extents.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.next 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.next->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.prev 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.prev->next 4096-ptr_max
PARAM_VALUE 1 root->ordered_root.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.next 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.next->next 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.prev 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.prev->next 4096-ptr_max
PARAM_VALUE 1 root->qgroup_flush_wait.head.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->refs.refs.counter 1
PARAM_VALUE 1 root->reloc_dirty_list.next 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.prev 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->reloc_dirty_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->root_key.objectid 18446744073709551610
PARAM_VALUE 1 root->root_key.offset 18446744073709551610
PARAM_VALUE 1 root->root_key.type 132
PARAM_VALUE 1 root->root_list.next 4096-ptr_max
PARAM_VALUE 1 root->root_list.next->next 4096-ptr_max
PARAM_VALUE 1 root->root_list.prev 4096-ptr_max
PARAM_VALUE 1 root->root_list.prev->next 4096-ptr_max
PARAM_VALUE 1 root->root_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 root->snapshot_force_cow.counter 0
PARAM_VALUE 1 root->swapped_blocks->blocks 4096-ptr_max
PARAM_VALUE 1 root->swapped_blocks.swapped 0
BUF_SIZE 0 trans (-1),1-s32max
BUF_SIZE 0 trans (-1),1-s32max
BUF_SIZE 1 root 2880
DATA_SOURCE 0 trans $0
DATA_SOURCE 1 root r alloc_log_tree
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 root->dirty_log_pages.fs_info->nodesize
NO_OVERFLOW_SIMPLE 1 root->dirty_log_pages.fs_info->sectorsize
NO_OVERFLOW_SIMPLE 1 root->fs_info->nodesize
NO_OVERFLOW_SIMPLE 1 root->fs_info->sectorsize
NO_OVERFLOW_SIMPLE 1 root->log_csum_range.fs_info->nodesize
NO_OVERFLOW_SIMPLE 1 root->log_csum_range.fs_info->sectorsize
LOCK2 &tree_root->log_mutex
HALF_LOCKED2 &inode->i_mmap_lock
HALF_LOCKED2 &inode->vfs_inode.i_rwsem
TYPE_LOCK (struct btrfs_root)->log_mutex