Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

fs/afs/security.c afs_permission() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 0 vnode->volume 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->key_desc 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->net 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->net->net 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
BUF_SIZE 1 key (-1)-s32max
BUF_SIZE 1 key (-1)-s32max
CAPPED_DATA 0 vnode->volume->cell->key_desc 1
DATA_SOURCE 0 vnode r AFS_FS_I
DATA_SOURCE 1 key r afs_request_key
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 key->quotalen
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &cgroup_mutex

fs/afs/flock.c afs_do_setlk() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 0 vnode->granted_locks.prev 4096-ptr_max
PARAM_VALUE 0 vnode->granted_locks.prev->next 4096-ptr_max
PARAM_VALUE 0 vnode->granted_locks.prev->next->next 4096-ptr_max
PARAM_VALUE 0 vnode->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vnode->lock_state 1-6,8-255
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->i_mmap_rwsem.dep_map->name 0-255
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->invalidate_lock.dep_map->name 0-255
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->invalidate_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->invalidate_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 vnode->netfs.inode.i_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 0 vnode->pending_locks.prev 4096-ptr_max
PARAM_VALUE 0 vnode->pending_locks.prev->next 4096-ptr_max
PARAM_VALUE 0 vnode->pending_locks.prev->next->next 4096-ptr_max
PARAM_VALUE 0 vnode->symlink 0
PARAM_VALUE 0 vnode->validate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vnode->validate_lock.first_waiter->type 0-1
PARAM_VALUE 0 vnode->validate_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 vnode->volume->cb_check_lock.dep_map->name 0-255
PARAM_VALUE 0 vnode->volume->cb_check_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 vnode->volume->cb_check_lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 vnode->volume->cb_check_lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 vnode->volume->cb_check_lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 vnode->volume->cb_check_lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 vnode->volume->cb_check_lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 vnode->volume->cb_check_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 vnode->volume->cb_check_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 vnode->volume->cb_v_break.counter 0-s32max
PARAM_VALUE 0 vnode->volume->cell->anonymous_key->user->qnbytes s32min-s32max
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
CAPPED_DATA 0 &vnode->granted_locks 1
DATA_SOURCE 0 vnode r AFS_FS_I
DATA_SOURCE 1 key r afs_file_key
FUZZY_MAX 0 vnode->lock_state 3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 key unit_byte

fs/afs/flock.c afs_do_setlk_check() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
DATA_SOURCE 0 vnode $0
DATA_SOURCE 1 key $1
RX_PATH
TASK_NOT_RUNNING

fs/afs/inode.c afs_getattr() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 0 vnode->cb_expires_at.counter s64min
PARAM_VALUE 0 vnode->volume 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->key_desc 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->net 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->net->net 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
BUF_SIZE 1 key (-1)-s32max
BUF_SIZE 1 key (-1)-s32max
CAPPED_DATA 0 vnode->volume->cell->key_desc 1
DATA_SOURCE 0 vnode r AFS_FS_I
DATA_SOURCE 1 key r afs_request_key
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vnode->volume->cell->anonymous_key->quotalen
NO_OVERFLOW_SIMPLE 1 key->quotalen
HALF_LOCKED2 &iint->mutex
HALF_LOCKED2 &lo->lo_mutex

fs/afs/file.c afs_file_read_iter() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/afs/file.c afs_file_splice_read() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/afs/file.c afs_open() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 0 vnode->volume 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->key_desc 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->net 4096-ptr_max
PARAM_VALUE 0 vnode->volume->cell->net->net 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
BUF_SIZE 1 key (-1)-s32max
BUF_SIZE 1 key (-1)-s32max
CAPPED_DATA 0 vnode->volume->cell->key_desc 1
DATA_SOURCE 0 vnode r AFS_FS_I
DATA_SOURCE 1 key r afs_request_key
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vnode->volume->cell->anonymous_key->quotalen
NO_OVERFLOW_SIMPLE 1 key->quotalen

fs/afs/write.c afs_fsync() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING

fs/afs/write.c afs_page_mkwrite() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/afs/symlink.c afs_get_link() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 0 vnode->symlink 1-u64max
PARAM_VALUE 1 key 0
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING

fs/afs/dir.c afs_d_revalidate() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 1 key 0,4096-ptr_max
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
BUF_SIZE 1 key (-1)-s32max
BUF_SIZE 1 key (-1)-s32max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 key->quotalen

fs/afs/dir.c afs_dir_remove_link() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 0 vnode->cb_lock.seqcount.seqcount.dep_map->name 0-255
PARAM_VALUE 0 vnode->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vnode->lock_key 0
PARAM_VALUE 0 vnode->lock_key->user->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vnode->lock_state 0,2
PARAM_VALUE 0 vnode->permit_cache 0
PARAM_VALUE 0 vnode->permit_cache->hash_node->next->pprev 1-u64max
PARAM_VALUE 0 vnode->permit_cache->hash_node.pprev 0
PARAM_VALUE 0 vnode->permit_cache->rcu.func 1-u64max
PARAM_VALUE 0 vnode->permit_cache->rcu.next 0
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
PARAM_VALUE 1 key->user->qnbytes s32min-s32max
PARAM_VALUE 1 key->user->qnkeys s32min-s32max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 key->quotalen
UNITS 1 key unit_byte
HALF_LOCKED2 &dvnode->rmdir_lock
HALF_LOCKED2 &target->i_rwsem

fs/afs/dir.c afs_link() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 key->quotalen
UNITS 1 key unit_byte
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/afs/dir.c afs_lookup() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 1 key 0
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dir->i_rwsem

fs/afs/dir.c afs_rename() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 key->quotalen
UNITS 1 key unit_byte
HALF_LOCKED2 &source->i_rwsem
HALF_LOCKED2 &target->i_rwsem

fs/afs/dir.c afs_rmdir() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 key->quotalen
UNITS 1 key unit_byte
LOCK2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &dir->d_inode->i_rwsem
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/afs/dir.c afs_unlink() -> afs_validate()

Type Parameter Key Value
PARAM_VALUE 0 vnode 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
DATA_SOURCE 0 vnode r AFS_FS_I
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 key->quotalen
UNITS 1 key unit_byte
LOCK2 &target->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &dir->d_inode->i_rwsem
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem