Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 4 files:
Smatch caller information:
fs/namei.c __follow_mount_rcu() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dentry | 4096-ptr_max |
| BUF_SIZE | 0 | mnt | (-1),32 |
| BUF_SIZE | 0 | mnt | (-1),32 |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | dentry->__d_name.hash | 0-u32max[c] |
| UNITS | 1 | dentry | unit_jiffy |
| USER_PTR | 1 | dentry->__d_name.name |
fs/namespace.c __path_is_mountpoint() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dentry | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_flags | 32768-u32max |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 1 | dentry->d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 1 | dentry->d_op->d_real | 0,4509355519306412032 |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| CAPPED_DATA | 1 | dentry | 1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | dentry->__d_name.hash | 0-u32max[c] |
| USER_PTR | 1 | dentry->__d_name.name | |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &sbi->fs_lock | ||
| HALF_LOCKED2 | &sbi->lookup_lock | ||
| HALF_LOCKED2 | 1 | &dentry->d_lockref.lock |
fs/namespace.c attach_recursive_mnt() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| RX_PATH | |||
| UNITS | 1 | dentry | unit_jiffy |
| LOCK2 | global &mount_lock.lock |
fs/namespace.c lookup_mnt() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | dentry->__d_name.hash | 0-u32max[c] |
| USER_PTR | 1 | dentry->__d_name.name | |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | 1 | &dentry->d_lockref.lock |
fs/namespace.c path_overmounted() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dentry->d_inode | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.osq.tail.counter | 0-s32max |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &dentry->d_inode->i_rwsem | ||
| LOCK2 | global &namespace_sem | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/namespace.c path_overmounted() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dentry->d_inode | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.osq.tail.counter | 0-s32max |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| BUF_SIZE | 0 | mnt | (-1)-0,32 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &dentry->d_inode->i_rwsem | ||
| LOCK2 | global &mount_lock.lock | ||
| LOCK2 | global &namespace_sem | ||
| TYPE_LOCK | (struct inode)->i_rwsem | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namespace.c where_to_mount() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/pnode.c gather_candidates() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | dentry | unit_jiffy |
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &to_path.dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/pnode.c propagate_mount_busy() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 32,4096-ptr_max |
| UNITS | 1 | dentry | unit_jiffy |
| LOCK2 | global &mount_lock.lock | ||
| LOCK2 | global &namespace_sem |
fs/pnode.c propagate_mount_unlock() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 32,4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | dentry | unit_jiffy |
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &to_path.dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/dcache.c __path_is_mountpoint() -> __lookup_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | dentry | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &dentry->d_lockref.lock | ||
| HALF_LOCKED2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct lockref)->lock |