Defined in 1 files as a function:

Referenced in 12 files:

Smatch caller information:

fs/namei.c follow_dotdot() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
CAPPED_DATA 0 mnt->mnt_root 1
RX_PATH
TASK_NOT_RUNNING

fs/namei.c follow_dotdot_rcu() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
CAPPED_DATA 0 mnt->mnt_root 1
RX_PATH
TASK_NOT_RUNNING

fs/namei.c follow_up() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max

fs/proc/fd.c seq_show() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/notify/fdinfo.c fsnotify_conn_mount() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mnt unit_byte
LOCK2 &group->mark_mutex
LOCK2 &m->lock
TYPE_LOCK (struct fsnotify_group)->mark_mutex
TYPE_LOCK (struct seq_file)->lock

fs/d_path.c prepend_path() -> real_mount()

Type Parameter Key Value
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

fs/stat.c vfs_statx_path() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

fs/stat.c vfs_statx_path() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

fs/namespace.c __do_loopback() -> real_mount()

Type Parameter Key Value
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
HALF_LOCKED2 &to_path.dentry->d_inode->i_rwsem
HALF_LOCKED2 global &namespace_sem

fs/namespace.c __do_sys_fsmount() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32

fs/namespace.c __do_sys_fsmount() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32

fs/namespace.c __legitimize_mnt() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 1-u64max
BUF_SIZE 0 mnt (-1)-0,32
BUF_SIZE 0 mnt (-1)-0,32
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

fs/namespace.c can_umount() -> real_mount()

Type Parameter Key Value

fs/namespace.c clone_private_mount() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &fc->uapi_mutex
HALF_LOCKED2 &sb->s_umount

fs/namespace.c collect_paths() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

fs/namespace.c create_new_namespace() -> real_mount()

Type Parameter Key Value
NS_CAPABLE 0 21
LOCK2 &to_path.dentry->d_inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/namespace.c dissolve_on_fput() -> real_mount()

Type Parameter Key Value
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING

fs/namespace.c do_change_type() -> real_mount()

Type Parameter Key Value

fs/namespace.c do_listmount() -> real_mount()

Type Parameter Key Value
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
LOCK2 global &namespace_sem

fs/namespace.c do_mount_setattr() -> real_mount()

Type Parameter Key Value

fs/namespace.c do_move_mount() -> real_mount()

Type Parameter Key Value

fs/namespace.c do_move_mount() -> real_mount()

Type Parameter Key Value

fs/namespace.c do_new_mount_fc() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r fc_mount

fs/namespace.c do_reconfigure_mnt() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max

fs/namespace.c do_remount() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max

fs/namespace.c do_set_group() -> real_mount()

Type Parameter Key Value

fs/namespace.c do_set_group() -> real_mount()

Type Parameter Key Value

fs/namespace.c do_statmount() -> real_mount()

Type Parameter Key Value
LOCK2 global &namespace_sem

fs/namespace.c do_statmount() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r lookup_mnt_in_ns
LOCK2 global &namespace_sem

fs/namespace.c fc_mount_longterm() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r fc_mount
RX_PATH
TASK_NOT_RUNNING

fs/namespace.c finish_automount() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namespace.c get_detached_copy() -> real_mount()

Type Parameter Key Value
LOCK2 global &namespace_sem

fs/namespace.c init_mount_tree() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r vfs_kern_mount

fs/namespace.c init_mount_tree() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r vfs_kern_mount

fs/namespace.c init_mount_tree() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r vfs_kern_mount

fs/namespace.c init_mount_tree() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r vfs_kern_mount
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 is_mounted() -> real_mount()

Type Parameter Key Value
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
DATA_SOURCE 0 mnt $0
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 global &mount_lock.lock
HALF_LOCKED2 global &namespace_sem

fs/namespace.c kern_mount() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r vfs_kern_mount
HALF_LOCKED2 &root.dentry->d_inode->i_rwsem
HALF_LOCKED2 global &namespace_sem

fs/namespace.c lock_mount_exact() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
NS_CAPABLE 0 21
RX_PATH
LOCK2 &dentry->d_inode->i_rwsem
LOCK2 global &namespace_sem
TYPE_LOCK (struct inode)->i_rwsem

fs/namespace.c lock_mount_exact() -> real_mount()

Type Parameter Key Value
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
TYPE_LOCK (struct inode)->i_rwsem

fs/namespace.c may_copy_tree() -> real_mount()

Type Parameter Key Value
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
HALF_LOCKED2 &to_path.dentry->d_inode->i_rwsem
HALF_LOCKED2 global &namespace_sem

fs/namespace.c may_umount() -> real_mount()

Type Parameter Key Value
DATA_SOURCE 0 mnt $0
LOCK2 global &mount_lock.lock
LOCK2 global &namespace_sem

fs/namespace.c may_umount_tree() -> real_mount()

Type Parameter Key Value
DATA_SOURCE 0 mnt $0

fs/namespace.c mnt_clone_internal() -> real_mount()

Type Parameter Key Value
CAPABLE 0 20
LOCK2 global &acct_on_mutex

fs/namespace.c mnt_get_write_access() -> real_mount()

Type Parameter Key Value
DATA_SOURCE 0 mnt $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

fs/namespace.c mnt_make_shortterm() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 1-u64max
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING

fs/namespace.c mnt_may_suid() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $0
BIT_INFO 0 mnt->mnt_flags 0x0,0xfffffffe

fs/namespace.c mnt_put_write_access() -> real_mount()

Type Parameter Key Value
DATA_SOURCE 0 mnt $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

fs/namespace.c mnt_set_expiry() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &mount_lock.lock
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namespace.c mntget() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 1-u64max
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
DATA_SOURCE 0 mnt $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &u->bindlock
HALF_LOCKED2 global &mount_lock.lock
HALF_LOCKED2 global &namespace_sem
HALF_LOCKED2 global &pin_fs_lock

fs/namespace.c mntput() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 1-u64max
BUF_SIZE 0 mnt (-1)-0,32
BUF_SIZE 0 mnt (-1)-0,32
DATA_SOURCE 0 mnt $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &cache->daemon_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &nfsd_mutex

fs/namespace.c mount_subtree() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING

fs/namespace.c our_mnt() -> real_mount()

Type Parameter Key Value
DATA_SOURCE 0 mnt $0

fs/namespace.c path_is_under() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &mount_lock.lock
HALF_LOCKED2 global &audit_cmd_mutex.lock

fs/namespace.c path_pivot_root() -> real_mount()

Type Parameter Key Value

fs/namespace.c path_pivot_root() -> real_mount()

Type Parameter Key Value

fs/namespace.c path_umount() -> real_mount()

Type Parameter Key Value

fs/namespace.c statmount_mnt_basic() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
LOCK2 global &namespace_sem

fs/namespace.c statmount_propagate_from() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
LOCK2 global &namespace_sem

fs/namespace.c statmount_sb_source() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
LOCK2 global &namespace_sem

fs/namespace.c vfsmount_to_propagation_flags() -> real_mount()

Type Parameter Key Value
BUF_SIZE 0 mnt (-1)-0,32
BUF_SIZE 0 mnt (-1)-0,32
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namespace.c where_to_mount() -> real_mount()

Type Parameter Key Value
LOCK2 global &mount_lock.lock
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 global &namespace_sem

fs/namespace.c where_to_mount() -> real_mount()

Type Parameter Key Value
LOCK2 global &mount_lock.lock
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 global &namespace_sem

fs/proc_namespace.c show_mountinfo() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc_namespace.c show_vfsmnt() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc_namespace.c show_vfsstat() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/fhandle.c do_sys_name_to_handle() -> real_mount()

Type Parameter Key Value

fs/fhandle.c do_sys_name_to_handle() -> real_mount()

Type Parameter Key Value

fs/fhandle.c is_mounted() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $0
CAPABLE 0 2
NS_CAPABLE 0 21

fs/fhandle.c may_decode_fh() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
CAPABLE 0 2
NS_CAPABLE 0 21

fs/fhandle.c may_decode_fh() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
CAPABLE 0 2
NS_CAPABLE 0 21

fs/notify/fsnotify.c __fsnotify_parent() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

fs/notify/fsnotify.c fsnotify() -> real_mount()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

fs/notify/fsnotify.c fsnotify_clear_marks_by_mount() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

fs/notify/fsnotify.c fsnotify_mnt() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 global &namespace_sem

fs/notify/fsnotify.c fsnotify_open_perm_and_set_mode() -> real_mount()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

fs/fs_pin.c pin_insert() -> real_mount()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
DATA_SOURCE 0 mnt $1
CAPABLE 0 20
PREEMPT_ADD <- disables preempt
LOCK2 &acct->lock
LOCK2 global &acct_on_mutex
LOCK2 global &pin_lock
TYPE_LOCK (struct bsd_acct_struct)->lock

fs/notify/mark.c fsnotify_conn_mount() -> real_mount()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mnt unit_byte
HALF_LOCKED2 &conn->lock

fs/notify/mark.c fsnotify_object_connp() -> real_mount()

Type Parameter Key Value
DATA_SOURCE 0 mnt $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mnt unit_byte