Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 7 files:
- fs/afs/dir.c
- fs/afs/file.c
- fs/afs/flock.c
- fs/afs/inode.c, line 615
- fs/afs/security.c, line 458
- fs/afs/symlink.c, line 179
- fs/afs/write.c
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 |