Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 7 files:
- drivers/base/devtmpfs.c, line 262
- fs/ecryptfs/inode.c, line 552
- fs/namei.c
- fs/nfsd/nfs4recover.c
- fs/nfsd/vfs.c, line 2346
- fs/overlayfs/overlayfs.h, line 215
- fs/smb/server/vfs.c
Smatch caller information:
fs/ecryptfs/inode.c ecryptfs_rmdir() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | idmap | 1531479832127729664 |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_parent | 4096-ptr_max |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| DATA_SOURCE | 2 | dentry | r ecryptfs_start_removing_dentry |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| 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/namei.c filename_rmdir() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dir | 4096-ptr_max |
| PARAM_VALUE | 1 | dir->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dir->i_rwsem.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | dentry->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | dentry->d_parent->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_parent->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 3 | delegated_inode | 2760981641129500672 |
| PARAM_VALUE | 3 | delegated_inode->di_inode | 0 |
| DATA_SOURCE | 2 | dentry | r start_dirop |
| RX_PATH | |||
| TASK_NOT_RUNNING |
fs/overlayfs/dir.c ovl_do_rmdir() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_inode->i_mapping->host->i_sb->s_cop->inode_info_offs | 1632,1720,1808,2632,2648,2712 |
| PARAM_VALUE | 2 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | dentry->d_inode->i_op->get_acl | 0,434817594022129664,1176132492164517888,2308293591809245184,2352177825799393280,5894181231315005440,7161457072544161792,8358186677320523776 |
| PARAM_VALUE | 2 | dentry->d_inode->i_op->get_offset_ctx | 0,2606890545167454208 |
| PARAM_VALUE | 2 | dentry->d_inode->i_op->readlink | 0,1728600404483375104,2832489546165891072,2874824064778891264,3069732422725099520,4516337085607264256 |
| PARAM_VALUE | 2 | dentry->d_inode->i_op->sync_lazytime | 0,6951464784224747520 |
| PARAM_VALUE | 2 | dentry->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | dentry->d_op->d_dname | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_op->d_iput | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_op->d_prune | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_op->d_real | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_parent->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_parent->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_automount | 0,2908707185815040000,3401111987815645184,6746145930460459008,7190988915944083456,7386785427940065280,8018779550845526016 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_init | 0,2385819921126617088,7057831443282669568,7824184004865302528 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_manage | 0,1859587847549206528 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_unalias_trylock | 0,6635409759016140800 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_unalias_unlock | 0,6336447517789900800 |
| PARAM_VALUE | 2 | dentry->d_parent->d_sb->__s_d_op->d_weak_revalidate | 0,1549882712720502784,5632434648052031488,5669063523602272256,7231033168839651328 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_automount | 0,2908707185815040000,3401111987815645184,6746145930460459008,7190988915944083456,7386785427940065280,8018779550845526016 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_init | 0,2385819921126617088,7057831443282669568,7824184004865302528 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_manage | 0,1859587847549206528 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_unalias_trylock | 0,6635409759016140800 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_unalias_unlock | 0,6336447517789900800 |
| PARAM_VALUE | 2 | dentry->d_sb->__s_d_op->d_weak_revalidate | 0,1549882712720502784,5632434648052031488,5669063523602272256,7231033168839651328 |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| CAPPED_DATA | 2 | dentry | 1 |
| DATA_SOURCE | 1 | dir | $1 |
| DATA_SOURCE | 2 | dentry | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | dentry->d_inode->i_mode | 0-u16max |
| USER_DATA | 2 | dentry->d_inode->i_size | (-9223372036854775807)-(-4),0-s64max |
| NO_OVERFLOW_SIMPLE | 2 | dentry->dentry->d_inode->i_size | |
| NO_OVERFLOW_SIMPLE | 2 | dentry->moved->d_inode->i_size | |
| HALF_LOCKED2 | 1 | &dir->i_rwsem | |
| HALF_LOCKED2 | 2 | &dentry->d_lockref.lock | |
| HALF_LOCKED2 | 2 | &dentry->d_sb->s_vfs_rename_mutex | |
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/nfsd/vfs.c nfsd_unlink() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | idmap | 1531479832127729664 |
| PARAM_VALUE | 1 | dir->i_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dir->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dir->i_rwsem.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| DATA_SOURCE | 2 | dentry | r start_removing |
fs/overlayfs/readdir.c ovl_do_rmdir() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dir | 4096-ptr_max |
| PARAM_VALUE | 1 | dir->i_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dir->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 1 | dir->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dir->i_rwsem.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | dir->i_sb->s_cop->inode_info_offs | 1632,1720,1808,2632,2648 |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_hash.pprev | 1-u64max |
| PARAM_VALUE | 2 | dentry->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | dentry->d_op->d_dname | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 2 | dentry->d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 2 | dentry->d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 2 | dentry->d_parent | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_parent->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 2 | dentry->d_parent->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| CAPPED_DATA | 1 | dir | 1 |
| CAPPED_DATA | 2 | dentry->d_parent | 1 |
| DATA_SOURCE | 1 | dir | $1 |
| DATA_SOURCE | 2 | dentry | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | dentry->d_inode->i_mode | 0-u16max |
| USER_DATA | 2 | dentry->d_inode->i_size | (-9223372036854775807)-(-4),0-s64max |
| UNITS | 2 | dentry | unit_jiffy |
| LOCK2 | 1 | &dir->i_rwsem | |
| HALF_LOCKED2 | &ofs->workdir->d_lockref.lock | ||
| HALF_LOCKED2 | &parent->d_inode->i_rwsem | ||
| HALF_LOCKED2 | &sb->s_umount | ||
| HALF_LOCKED2 | 2 | &dentry->d_lockref.lock | |
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/smb/server/vfs.c ksmbd_vfs_remove_file() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_parent | 4096-ptr_max |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| LOCK2 | &pool->lock |
fs/smb/server/vfs.c ksmbd_vfs_unlink() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dir | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | dentry->d_hash.pprev | 1-u64max |
| PARAM_VALUE | 2 | dentry->d_parent | 4096-ptr_max |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| BUF_SIZE | 2 | dentry | (-1),1-s32max |
| CAPPED_DATA | 2 | dentry->d_parent | 1 |
| DATA_SOURCE | 0 | idmap | r file_mnt_idmap |
| DATA_SOURCE | 2 | dentry | r start_removing_dentry |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &dir->d_inode->i_rwsem | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
drivers/base/devtmpfs.c dev_rmdir() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | idmap | 1531479832127729664 |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| DATA_SOURCE | 2 | dentry | r start_removing_path |
fs/nfsd/nfs4recover.c nfsd4_unlink_clid_dir() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | idmap | 1531479832127729664 |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| DATA_SOURCE | 2 | dentry | r start_removing |
| HALF_LOCKED2 | &pool->lock |
fs/nfsd/nfs4recover.c purge_old() -> vfs_rmdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | idmap | 1531479832127729664 |
| PARAM_VALUE | 2 | dentry | 4096-ptr_max |
| PARAM_VALUE | 3 | delegated_inode | 0 |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| BUF_SIZE | 2 | dentry | (-1)-s32max |
| DATA_SOURCE | 2 | dentry | r start_removing_noperm |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &nfsd_mutex |