aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/vfs_mount.c
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2012-10-22 17:50:54 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2012-10-22 17:50:54 +0000
commit5050aa86cff105784877fb886a7b1d25bca5813b (patch)
tree6e9ef0a47c5e91d26227820c50c9767e84550821 /sys/kern/vfs_mount.c
parentbf3d1021334f4d19cf4fa95bd409db11c4dcfb9e (diff)
downloadsrc-5050aa86cff105784877fb886a7b1d25bca5813b.tar.gz
src-5050aa86cff105784877fb886a7b1d25bca5813b.zip
Notes
Diffstat (limited to 'sys/kern/vfs_mount.c')
-rw-r--r--sys/kern/vfs_mount.c27
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) {