Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

fs/btrfs/extent-tree.c check_ref_cleanup() -> btrfs_delete_ref_head()

Type Parameter Key Value
PARAM_VALUE 0 fs_info 4096-ptr_max
PARAM_VALUE 1 delayed_refs 4096-ptr_max
PARAM_VALUE 1 delayed_refs->lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 head 4096-ptr_max
PARAM_VALUE 2 head->extent_op 0
PARAM_VALUE 2 head->lock.rlock.dep_map->name 0-255
BUF_SIZE 1 delayed_refs 296
CAPPED_DATA 2 &head->mutex 1
DATA_SOURCE 2 head r btrfs_find_delayed_ref_head
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 fs_info unit_byte
LOCK2 1 &delayed_refs->lock
LOCK2 2 &head->lock
LOCK2 2 &head->mutex
HALF_LOCKED2 &buf->lock
HALF_LOCKED2 &cow->lock
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &fs_info->subvol_sem
HALF_LOCKED2 &trans->fs_info->commit_root_sem
HALF_LOCKED2 &trans->fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &trans->fs_info->fs_roots_radix_lock
HALF_LOCKED2 &trans->fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &trans->fs_info->qgroup_lock
HALF_LOCKED2 &trans->fs_info->unused_bg_unpin_mutex
HALF_LOCKED2 &trans->transaction->delayed_refs.lock
TYPE_LOCK (struct btrfs_delayed_ref_head)->lock
TYPE_LOCK (struct btrfs_delayed_ref_head)->mutex
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock

fs/btrfs/extent-tree.c cleanup_ref_head() -> btrfs_delete_ref_head()

Type Parameter Key Value
PARAM_VALUE 1 delayed_refs 4096-ptr_max
PARAM_VALUE 1 delayed_refs->lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 head 4096-ptr_max
PARAM_VALUE 2 head->extent_op 0
PARAM_VALUE 2 head->lock.rlock.dep_map->name 0-255
BUF_SIZE 1 delayed_refs 296
CAPPED_DATA 2 head 1
DATA_SOURCE 2 head $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 fs_info unit_byte
LOCK2 1 &delayed_refs->lock
LOCK2 2 &head->lock
HALF_LOCKED2 &fs_info->reloc_mutex
TYPE_LOCK (struct btrfs_delayed_ref_head)->lock
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock

fs/btrfs/tests/delayed-refs-tests.c delete_delayed_ref_head() -> btrfs_delete_ref_head()

Type Parameter Key Value
PARAM_VALUE 1 delayed_refs 4096-ptr_max
PARAM_VALUE 1 delayed_refs->lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 head 4096-ptr_max
PARAM_VALUE 2 head->bytenr 0
PARAM_VALUE 2 head->lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 head->must_insert_reserved 0
PARAM_VALUE 2 head->num_bytes 0-u32max
PARAM_VALUE 2 head->processing 1
PARAM_VALUE 2 head->ref_mod (-2)-2
PARAM_VALUE 2 head->total_ref_mod (-2)-2
BUF_SIZE 1 delayed_refs 296
CAPPED_DATA 2 head 1
CAPPED_DATA 2 head->num_bytes 1
CAPPED_DATA 2 head->ref_mod 1
CAPPED_DATA 2 head->total_ref_mod 1
DATA_SOURCE 2 head $1
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
UNITS 0 fs_info unit_byte
LOCK2 1 &delayed_refs->lock
LOCK2 2 &head->lock
TYPE_LOCK (struct btrfs_delayed_ref_head)->lock
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock

fs/btrfs/delayed-ref.c btrfs_destroy_delayed_refs() -> btrfs_delete_ref_head()

Type Parameter Key Value
PARAM_VALUE 0 fs_info->sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648
PARAM_VALUE 1 delayed_refs 4096-ptr_max
PARAM_VALUE 1 delayed_refs->lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 head 4096-ptr_max
PARAM_VALUE 2 head->lock.rlock.dep_map->name 0-255
BUF_SIZE 1 delayed_refs 296
CAPPED_DATA 2 head->extent_op 1
DATA_SOURCE 2 head r find_first_ref_head
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 fs_info unit_byte
LOCK2 1 &delayed_refs->lock
LOCK2 2 &head->lock
LOCK2 2 &head->mutex
TYPE_LOCK (struct btrfs_delayed_ref_head)->lock
TYPE_LOCK (struct btrfs_delayed_ref_head)->mutex
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock