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_account_extent() -> ulist_free()

Type Parameter Key Value
DATA_SOURCE 0 ulist $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/qgroup.c btrfs_qgroup_account_extent() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
DATA_SOURCE 0 ulist $4
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/qgroup.c btrfs_qgroup_account_extents() -> ulist_free()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cow->lock
LOCK2 &fs_info->reloc_mutex
HALF_LOCKED2 &dev_replace->lock_finishing_cancel_unmount
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &fs_info->subvol_sem
HALF_LOCKED2 &fs_info->transaction_kthread_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_fs_info)->reloc_mutex

fs/btrfs/qgroup.c btrfs_qgroup_account_extents() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 0
BUF_SIZE 0 ulist 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cow->lock
LOCK2 &fs_info->reloc_mutex
HALF_LOCKED2 &dev_replace->lock_finishing_cancel_unmount
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &fs_info->subvol_sem
HALF_LOCKED2 &fs_info->transaction_kthread_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_fs_info)->reloc_mutex

fs/btrfs/qgroup.c btrfs_qgroup_destroy_extent_records() -> ulist_free()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &delayed_refs->lock
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock

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

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->prev 4096-ptr_max
PARAM_VALUE 0 ulist->prealloc 0
PARAM_VALUE 0 ulist->root.rb_node 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_multiple_refs() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_multiple_refs() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_multiple_refs() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->prev 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_multiple_refs() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->prev 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_multiple_refs() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->prev 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_multiple_refs() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->prev 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_no_shared_qgroup() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_no_shared_qgroup() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_no_shared_qgroup() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
NOCHECK_CALL

fs/btrfs/tests/qgroup-tests.c test_no_shared_qgroup() -> ulist_free()

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
NOCHECK_CALL

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 ulist 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ulist->prealloc 0
BUF_SIZE 0 ulist 40
DATA_SOURCE 0 ulist r ulist_alloc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->fs_info->commit_root_sem
HALF_LOCKED2 &pool->lock

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 ulist 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
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 ulist 0,4096-ptr_max
PARAM_VALUE 0 ulist->nodes.next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ulist->nodes.prev->prev 4096-ptr_max
BUF_SIZE 0 ulist (-1),40
BUF_SIZE 0 ulist (-1),40
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->fs_info->commit_root_sem