Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

fs/btrfs/qgroup.c btrfs_qgroup_check_reserved_leak() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 8126527500509323272
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/qgroup.c btrfs_qgroup_check_reserved_leak() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 8126527500509323272
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/qgroup.c maybe_fs_roots() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
DATA_SOURCE 0 ulist $0
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/qgroup.c qgroup_free_reserved_data() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &inode->i_mmap_lock
HALF_LOCKED2 &inode->vfs_inode.i_rwsem

fs/btrfs/qgroup.c qgroup_free_reserved_data() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &inode->i_mmap_lock
HALF_LOCKED2 &inode->vfs_inode.i_rwsem

fs/btrfs/qgroup.c qgroup_update_refcnt() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
DATA_SOURCE 0 ulist $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->qgroup_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_fs_info)->qgroup_lock

fs/btrfs/qgroup.c qgroup_update_refcnt() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
DATA_SOURCE 0 ulist $1
PARAM_COMPARE 0 &ulist->nodes != $0->nodes.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->qgroup_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_fs_info)->qgroup_lock

fs/btrfs/relocation.c add_data_references() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 0,4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max

fs/btrfs/relocation.c add_data_references() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
PARAM_COMPARE 0 &ulist->nodes != $0->nodes.next

fs/btrfs/backref.c btrfs_find_all_roots_safe() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
BUF_SIZE 0 ulist 40
DATA_SOURCE 0 ulist r ulist_alloc
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem
HALF_LOCKED2 &pool->lock

fs/btrfs/backref.c btrfs_is_data_extent_shared() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->vfs_inode.i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/btrfs/backref.c free_leaf_list() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
BUF_SIZE 0 ulist (-1),40
BUF_SIZE 0 ulist (-1),40
DATA_SOURCE 0 ulist $0
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/backref.c free_leaf_list() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
BUF_SIZE 0 ulist (-1),40
BUF_SIZE 0 ulist (-1),40
DATA_SOURCE 0 ulist $0
PARAM_COMPARE 0 &ulist->nodes != $0->nodes.next
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/backref.c iterate_extent_inodes() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/backref.c iterate_extent_inodes() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/backref.c iterate_extent_inodes() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
PARAM_COMPARE 0 &ulist->nodes != $0->nodes.next
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/backref.c iterate_extent_inodes() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
PARAM_COMPARE 0 &ulist->nodes != $0->nodes.next
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/backref.c resolve_indirect_refs() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
BUF_SIZE 0 ulist 40
DATA_SOURCE 0 ulist r ulist_alloc
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/backref.c resolve_indirect_refs() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
BUF_SIZE 0 ulist 40
DATA_SOURCE 0 ulist r ulist_alloc
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/backref.c resolve_indirect_refs() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
BUF_SIZE 0 ulist 40
DATA_SOURCE 0 ulist r ulist_alloc
PARAM_COMPARE 0 &ulist->nodes != $0->nodes.next
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/send.c store_backref_cache() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
DATA_SOURCE 0 ulist $1
HALF_LOCKED2 &ctx->fs_info->commit_root_sem

fs/btrfs/send.c store_backref_cache() -> ulist_next()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 1 uiter 4096-ptr_max
DATA_SOURCE 0 ulist $1
PARAM_COMPARE 0 &ulist->nodes != $0->nodes.next
HALF_LOCKED2 &ctx->fs_info->commit_root_sem