diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2012-10-22 17:50:54 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2012-10-22 17:50:54 +0000 |
commit | 5050aa86cff105784877fb886a7b1d25bca5813b (patch) | |
tree | 6e9ef0a47c5e91d26227820c50c9767e84550821 /sys/kern/vfs_mount.c | |
parent | bf3d1021334f4d19cf4fa95bd409db11c4dcfb9e (diff) | |
download | src-5050aa86cff105784877fb886a7b1d25bca5813b.tar.gz src-5050aa86cff105784877fb886a7b1d25bca5813b.zip |
Notes
Diffstat (limited to 'sys/kern/vfs_mount.c')
-rw-r--r-- | sys/kern/vfs_mount.c | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index f39784269060..f5ff8ac3ab99 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -37,8 +37,6 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -#include "opt_vfs_allow_nonmpsafe.h" - #include <sys/param.h> #include <sys/conf.h> #include <sys/fcntl.h> @@ -821,14 +819,6 @@ vfs_domount_first( * get. No freeing of cn_pnbuf. */ error = VFS_MOUNT(mp); -#ifndef VFS_ALLOW_NONMPSAFE - if (error == 0 && VFS_NEEDSGIANT(mp)) { - (void)VFS_UNMOUNT(mp, fsflags); - error = ENXIO; - printf("%s: Mounting non-MPSAFE fs (%s) is disabled\n", - __func__, mp->mnt_vfc->vfc_name); - } -#endif if (error != 0) { vfs_unbusy(mp); vfs_mount_destroy(mp); @@ -838,11 +828,6 @@ vfs_domount_first( vrele(vp); return (error); } -#ifdef VFS_ALLOW_NONMPSAFE - if (VFS_NEEDSGIANT(mp)) - printf("%s: Mounting non-MPSAFE fs (%s) is deprecated\n", - __func__, mp->mnt_vfc->vfc_name); -#endif if (mp->mnt_opt != NULL) vfs_freeopts(mp->mnt_opt); @@ -1100,13 +1085,12 @@ vfs_domount( /* * Get vnode to be covered or mount point's vnode in case of MNT_UPDATE. */ - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | AUDITVNODE1, UIO_SYSSPACE, fspath, td); error = namei(&nd); if (error != 0) return (error); - if (!NDHASGIANT(&nd)) - mtx_lock(&Giant); + mtx_lock(&Giant); NDFREE(&nd, NDF_ONLY_PNBUF); vp = nd.ni_vp; if ((fsflags & MNT_UPDATE) == 0) { @@ -1153,7 +1137,7 @@ sys_unmount(td, uap) struct nameidata nd; struct mount *mp; char *pathbuf; - int error, id0, id1, vfslocked; + int error, id0, id1; AUDIT_ARG_VALUE(uap->flags); if (jailed(td->td_ucred) || usermount == 0) { @@ -1190,17 +1174,14 @@ sys_unmount(td, uap) /* * Try to find global path for path argument. */ - NDINIT(&nd, LOOKUP, - FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | AUDITVNODE1, UIO_SYSSPACE, pathbuf, td); if (namei(&nd) == 0) { - vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); error = vn_path_to_global_path(td, nd.ni_vp, pathbuf, MNAMELEN); if (error == 0 || error == ENODEV) vput(nd.ni_vp); - VFS_UNLOCK_GIANT(vfslocked); } mtx_lock(&mountlist_mtx); TAILQ_FOREACH_REVERSE(mp, &mountlist, mntlist, mnt_list) { |