Documented in 1 files:
Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
fs/namespace.c copy_tree() -> attach_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt.mnt_idmap | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt.mnt_root | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt.mnt_sb | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_devname | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_expire.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_expire.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_expire.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_expire.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_expire.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_hash.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_hash.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_list.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_list.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_list.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_list.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_list.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mountpoint | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mounts.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mounts.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mounts.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mounts.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mounts.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_next_for_sb | 0,4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_next_for_sb->mnt_pprev_for_sb | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_ns_visible.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_ns_visible.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt.mnt_idmap | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt.mnt_root | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt.mnt_sb | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_child.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_child.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_devname | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_expire.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_expire.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_hash.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_hash.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_list.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_list.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_mountpoint | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_mounts.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_mounts.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_mp_list.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_mp_list.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_pcp | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_share.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_share.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_slave.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_slave.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_pcp | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_pprev_for_sb | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_share.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_share.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_share.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_share.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_share.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_slave.next->pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_slave.pprev | 0,4096-ptr_max |
| PARAM_VALUE | 0 | *mnt->mnt_pprev_for_sb | 0,4096-ptr_max |
| PARAM_VALUE | 1 | parent | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt.mnt_idmap | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt.mnt_root | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt.mnt_sb | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_child.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_devname | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_expire.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_expire.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_hash.pprev | 0,4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_list.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_list.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_mounts.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_mounts.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_mp_list.pprev | 0,4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_ns_visible.next | 0 |
| PARAM_VALUE | 1 | parent->mnt_ns_visible.pprev | 0 |
| PARAM_VALUE | 1 | parent->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_pcp | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_share.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_share.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_slave.pprev | 0,4096-ptr_max |
| CAPPED_DATA | 0 | mnt | 1 |
| DATA_SOURCE | 0 | mnt | r clone_mnt |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/namespace.c create_new_namespace() -> attach_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| PARAM_VALUE | 1 | parent | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt.mnt_idmap | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt.mnt_root | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt.mnt_sb | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_child.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_child.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_devname | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_expire.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_expire.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_hash.next | 0 |
| PARAM_VALUE | 1 | parent->mnt_hash.pprev | 0 |
| PARAM_VALUE | 1 | parent->mnt_list.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_list.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_mountpoint | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_mounts.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_mounts.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_mp_list.next | 0 |
| PARAM_VALUE | 1 | parent->mnt_mp_list.pprev | 0 |
| PARAM_VALUE | 1 | parent->mnt_next_for_sb | 0,4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_ns_visible.next | 0 |
| PARAM_VALUE | 1 | parent->mnt_ns_visible.pprev | 0 |
| PARAM_VALUE | 1 | parent->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_pcp | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_pprev_for_sb | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_share.next | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_share.prev | 4096-ptr_max |
| PARAM_VALUE | 1 | parent->mnt_slave.pprev | 0,4096-ptr_max |
| PARAM_VALUE | 2 | mp | 4096-ptr_max |
| PARAM_VALUE | 2 | mp->m_dentry->d_inode->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 2 | mp->m_dentry->d_inode->i_rwsem.first_waiter->handoff_set | 1 |
| PARAM_VALUE | 2 | mp->m_dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 2 | mp->m_dentry->d_lru.next | 4096-ptr_max |
| PARAM_VALUE | 2 | mp->m_dentry->d_lru.prev | 4096-ptr_max |
| PARAM_VALUE | 2 | mp->m_hash->next->pprev | 1-u64max |
| CAPPED_DATA | 0 | mnt | 1 |
| NS_CAPABLE | 0 | 21 | |
| NOCHECK_CALL | |||
| LOCK2 | &to_path.dentry->d_inode->i_rwsem | ||
| LOCK2 | global &mount_lock.lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/namespace.c init_mount_tree() -> attach_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| PARAM_VALUE | 1 | parent | 4096-ptr_max |
| PARAM_VALUE | 2 | mp | 4096-ptr_max |
| PARAM_VALUE | 2 | mp->m_dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | mp->m_list.first | 2250278746685325312,2376455258303565824,3228210307126067200,4840642130781356032,5513784921387532288,6432334256566214656,6781411499137540096,8584327291326013440 |
| NOCHECK_CALL | |||
| LOCK2 | &root.dentry->d_inode->i_rwsem | ||
| LOCK2 | global &mount_lock.lock | ||
| LOCK2 | global &namespace_sem | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/namespace.c mnt_change_mountpoint() -> attach_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_hash.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp_list->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.pprev | 0 |
| PARAM_VALUE | 1 | parent | 4096-ptr_max |
| DATA_SOURCE | 0 | mnt | $2 |
| DATA_SOURCE | 1 | parent | $0 |
| DATA_SOURCE | 2 | mp | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock |
fs/namespace.c path_pivot_root() -> attach_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_hash.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp->m_dentry->d_lru.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mp->m_dentry->d_lru.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mp->m_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_mp_list->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 1 | parent | 4096-ptr_max |
| CAPPED_DATA | 0 | mnt | 1 |
| CAPPED_DATA | 0 | mnt->mnt_ns | 1 |
| DATA_SOURCE | 0 | mnt | r real_mount |
| BIT_INFO | 1 | parent->mnt_t_flags | 0x0,0xfffffffe |
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock |
fs/namespace.c path_pivot_root() -> attach_mnt()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mnt | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_hash.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp->m_dentry->d_lru.next | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mp->m_dentry->d_lru.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_mp->m_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_mp_list->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.next | 0 |
| PARAM_VALUE | 0 | mnt->mnt_mp_list.pprev | 0 |
| PARAM_VALUE | 0 | mnt->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | mnt->mnt_parent->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 1 | parent | 4096-ptr_max |
| PARAM_VALUE | 2 | mp | 4096-ptr_max |
| PARAM_VALUE | 2 | mp->m_dentry | 4096-ptr_max |
| PARAM_VALUE | 2 | mp->m_list.first | 2250278746685325312,2376455258303565824,3228210307126067200,4840642130781356032,5513784921387532288,6432334256566214656,6781411499137540096,8584327291326013440 |
| CAPPED_DATA | 0 | mnt | 1 |
| CAPPED_DATA | 0 | mnt->mnt_ns | 1 |
| DATA_SOURCE | 0 | mnt | r real_mount |
| PARAM_COMPARE | 0 | mnt | != $1 |
| PARAM_COMPARE | 1 | parent | != $0 |
| PARAM_COMPARE | 1 | parent | != $0 |
| BIT_INFO | 0 | mnt->mnt.mnt_flags | 0x0,0xff7fffff |
| BIT_INFO | 1 | parent->mnt_t_flags | 0x0,0xfffffffe |
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock |