Defined in 2 files as a function:
Referenced in 2 files:
Smatch caller information:
fs/namespace.c attach_recursive_mnt() -> mnt_notify_add()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | m->mnt_hash.pprev | 0 |
| PARAM_VALUE | 0 | m->mnt_mp | 0 |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | m->mnt_mp_list->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | m->mnt_mp_list.next | 0 |
| PARAM_VALUE | 0 | m->mnt_mp_list.pprev | 0 |
| PARAM_VALUE | 0 | m->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_parent | 4096-ptr_max |
| CAPPED_DATA | 0 | m | 1 |
| DATA_SOURCE | 0 | m | $0 |
| RX_PATH | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock |
fs/namespace.c mnt_add_to_ns() -> mnt_notify_add()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt.mnt_sb | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt.mnt_sb->s_type | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt.mnt_sb->s_type->fs_flags | s32min-(-1),512-s32max |
| PARAM_VALUE | 0 | m->mnt_node.__rb_parent_color | 1 |
| PARAM_VALUE | 0 | m->mnt_node.rb_left | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_node.rb_right | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_ns | 4096-ptr_max |
| BUF_SIZE | 0 | m->mnt_ns | (-1),448 |
| CAPPED_DATA | 0 | m | 1 |
| CAPPED_DATA | 0 | &m->mnt_node | 1 |
| DATA_SOURCE | 0 | m | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &root.dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | &to_path.dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/namespace.c path_pivot_root() -> mnt_notify_add()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_hash.pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mountpoint | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | m->mnt_mp_list->pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp_list.pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->overmount | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->overmount->mnt_parent | 4096-ptr_max |
| CAPPED_DATA | 0 | m | 1 |
| CAPPED_DATA | 0 | m->mnt_ns | 1 |
| DATA_SOURCE | 0 | m | r real_mount |
| BIT_INFO | 0 | m->mnt.mnt_flags | 0x0,0xff7fffff |
| NOCHECK_CALL |
fs/namespace.c path_pivot_root() -> mnt_notify_add()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_expire.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_expire.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_hash.pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | m->mnt_mp_list->pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp_list.pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->overmount | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->overmount->mnt_parent | 4096-ptr_max |
| CAPPED_DATA | 0 | m | 1 |
| CAPPED_DATA | 0 | m->mnt_ns | 1 |
| DATA_SOURCE | 0 | m | r real_mount |
| NOCHECK_CALL |
fs/namespace.c umount_tree() -> mnt_notify_add()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_ns | 0 |
| PARAM_VALUE | 0 | m->mnt_parent | 4096-ptr_max |
| CAPPED_DATA | 0 | m | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &to_path.dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/pnode.c reparent() -> mnt_notify_add()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_child.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_hash.pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_dentry->d_lru.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp->m_hash->next->pprev | 1-u64max |
| PARAM_VALUE | 0 | m->mnt_mp_list->pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_mp_list.pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->mnt_mounts.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->overmount | 4096-ptr_max |
| PARAM_VALUE | 0 | m->mnt_parent->overmount->mnt_parent | 4096-ptr_max |
| DATA_SOURCE | 0 | m | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &to_path.dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem |