Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 16 files:

Smatch caller information:

ipc/namespace.c create_ipc_ns() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &tsk->signal->exec_update_lock

ipc/namespace.c free_ipc_ns() -> mntput()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/pidfs.c pidfs_fh_to_dentry() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/nfs/nfs4super.c do_nfs4_mount() -> mntput()

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
NOCHECK_CALL
HALF_LOCKED2 &parent->d_lockref.lock

fs/cachefiles/cache.c cachefiles_add_cache() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
NOCHECK_CALL
LOCK2 &cache->daemon_mutex
TYPE_LOCK (struct cachefiles_cache)->daemon_mutex

fs/cachefiles/daemon.c cachefiles_daemon_unbind() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt->mnt_sb->s_bdi->wb_switch_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mnt->mnt_sb->s_bdi->wb_switch_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 mnt->mnt_sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mnt->mnt_sb->s_umount.first_waiter->type 0-1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/namei.c __traverse_mounts() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 0,32
BUF_SIZE 0 mnt 0,32
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namei.c __traverse_mounts() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
BUF_SIZE 0 mnt 0,32
BUF_SIZE 0 mnt 0,32
CAPPED_DATA 0 mnt 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namei.c follow_down() -> mntput()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/namei.c follow_down_one() -> mntput()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &path->dentry->d_lockref.lock

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namei.c handle_mounts() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namei.c path_put() -> mntput()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &path->dentry->d_lockref.lock

fs/namei.c step_into_slowpath() -> mntput()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nd->path.dentry->d_lockref.lock

fs/nfsd/nfs4state.c nfsd4_ssc_expire_umount() -> mntput()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/nfsd/nfs4state.c nfsd4_ssc_shutdown_umount() -> mntput()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &nfsd_mutex

fs/file_table.c __fput() -> mntput()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_lockref.lock

drivers/tty/pty.c ptm_open_peer_file() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_sb 4096-ptr_max
DATA_SOURCE 0 mnt r devpts_mntget
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_idmap 1531479832127729664
PARAM_VALUE 0 mnt->mnt_root 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_sb 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r vfs_create_mount
BIT_INFO 0 mnt->mnt_sb->s_flags 0x80000000,0xffffffffffffffff
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_idmap 1531479832127729664
PARAM_VALUE 0 mnt->mnt_root 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_sb 4096-ptr_max
BUF_SIZE 0 mnt 32
DATA_SOURCE 0 mnt r vfs_create_mount
BIT_INFO 0 mnt->mnt_sb->s_flags 0x80000000,0xffffffffffffffff
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 0-ptr_max
BIT_INFO 0 mnt 0x0,0x7fffffffffffffff
BIT_INFO 0 mnt 0x0,0x7fffffffffffffff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 32,4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 global &namespace_sem

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 0-ptr_max
PARAM_VALUE 0 mnt->mnt_sb->s_cop->inode_info_offs 1632,1640,1720,1808,1816,2632,2640,2648,2704,2712
BUF_SIZE 0 mnt (-1),32
BUF_SIZE 0 mnt (-1),32
DATA_SOURCE 0 mnt $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ofs->whiteout->d_lockref.lock
HALF_LOCKED2 &ofs->workbasedir->d_lockref.lock
HALF_LOCKED2 &ofs->workdir->d_lockref.lock

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

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

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

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
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_sb 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 mnt 32,4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_inode->i_rwsem

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

Type Parameter Key Value
NOCHECK_CALL

fs/ecryptfs/main.c ecryptfs_kill_block_super() -> mntput()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 global &cifs_mount_mutex

fs/devpts/inode.c devpts_mntget() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_sb 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &path.dentry->d_lockref.lock

fs/smb/server/vfs.c ksmbd_vfs_kern_path_end_removing() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_sb 4096-ptr_max
NOCHECK_CALL
LOCK2 &pool->lock

fs/btrfs/super.c mount_subvol() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 0,4096-ptr_max
PARAM_VALUE 0 mnt->mnt_idmap 1531479832127729664
PARAM_VALUE 0 mnt->mnt_root 4096-ptr_max
PARAM_VALUE 0 mnt->mnt_sb 4096-ptr_max
BUF_SIZE 0 mnt 0,32
BUF_SIZE 0 mnt 0,32
DATA_SOURCE 0 mnt $2 [m]
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fc->uapi_mutex
HALF_LOCKED2 &root->d_lockref.lock
HALF_LOCKED2 &s->s_umount

fs/overlayfs/namei.c ovl_lookup_data_layers() -> mntput()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex

fs/libfs.c simple_pin_fs() -> mntput()

Type Parameter Key Value
PARAM_VALUE 0 mnt 0,4096-ptr_max
BUF_SIZE 0 mnt 0,32
BUF_SIZE 0 mnt 0,32
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/libfs.c simple_release_fs() -> mntput()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &parent->lock