Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

fs/btrfs/qgroup.c qgroup_convert_meta() -> qgroup_rsv_add()

Type Parameter Key Value
PARAM_VALUE 0 fs_info 4096-ptr_max
PARAM_VALUE 1 qgroup 4096-ptr_max
PARAM_VALUE 2 num_bytes 1-s32max,18446744071562067968-u64max
PARAM_VALUE 3 type 1
CAPPED_DATA 2 num_bytes 1
DATA_SOURCE 0 fs_info $0
DATA_SOURCE 2 num_bytes $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 fs_info unit_byte
LOCK2 0 &fs_info->qgroup_lock
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &fs_info->subvol_sem
HALF_LOCKED2 &node->mutex
TYPE_LOCK (struct btrfs_fs_info)->qgroup_lock

fs/btrfs/qgroup.c qgroup_reserve() -> qgroup_rsv_add()

Type Parameter Key Value
PARAM_VALUE 0 fs_info 4096-ptr_max
PARAM_VALUE 1 qgroup 4096-ptr_max
PARAM_VALUE 2 num_bytes 1-u64max
PARAM_VALUE 3 type 0,2
DATA_SOURCE 2 num_bytes $1
DATA_SOURCE 3 type $3
HARD_MAX 3 type 2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 fs_info unit_byte
UNITS 2 num_bytes unit_byte
LOCK2 0 &fs_info->qgroup_lock
TYPE_LOCK (struct btrfs_fs_info)->qgroup_lock

fs/btrfs/qgroup.c qgroup_rsv_add_by_qgroup() -> qgroup_rsv_add()

Type Parameter Key Value
PARAM_VALUE 0 fs_info 4096-ptr_max
PARAM_VALUE 1 qgroup 4096-ptr_max
PARAM_VALUE 3 type 0-2
DATA_SOURCE 0 fs_info $0
DATA_SOURCE 1 qgroup $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 fs_info unit_byte
LOCK2 0 &fs_info->qgroup_lock
HALF_LOCKED2 &fs_info->qgroup_ioctl_lock
HALF_LOCKED2 0 &fs_info->qgroup_ioctl_lock
TYPE_LOCK (struct btrfs_fs_info)->qgroup_ioctl_lock
TYPE_LOCK (struct btrfs_fs_info)->qgroup_lock