aboutsummaryrefslogtreecommitdiff
path: root/sys/nfsclient/nfs_vfsops.c
diff options
context:
space:
mode:
authorMarko Zec <zec@FreeBSD.org>2010-01-09 14:56:38 +0000
committerMarko Zec <zec@FreeBSD.org>2010-01-09 14:56:38 +0000
commit5d005b51e5d21f69405a4f36d6b28a34fc9e6724 (patch)
treef601492b953df8abb63fb7328838581ec69a0203 /sys/nfsclient/nfs_vfsops.c
parent1a933e8f103aa8ff4d1cca52d2113d21fab9f287 (diff)
downloadsrc-5d005b51e5d21f69405a4f36d6b28a34fc9e6724.tar.gz
src-5d005b51e5d21f69405a4f36d6b28a34fc9e6724.zip
Reduce recursions on curvnet and thus spamming the console with warning
messages for kernels built with options VIMAGE and VNET_DEBUG enabled. Reviewed by: bz MFC after: 3 days
Notes
Notes: svn path=/head/; revision=201895
Diffstat (limited to 'sys/nfsclient/nfs_vfsops.c')
-rw-r--r--sys/nfsclient/nfs_vfsops.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c
index 0e100935f143..2346d41932a0 100644
--- a/sys/nfsclient/nfs_vfsops.c
+++ b/sys/nfsclient/nfs_vfsops.c
@@ -423,14 +423,18 @@ nfs_mountroot(struct mount *mp)
char buf[128];
char *cp;
+ CURVNET_SET(TD_TO_VNET(td));
+
#if defined(BOOTP_NFSROOT) && defined(BOOTP)
bootpc_init(); /* use bootp to get nfs_diskless filled in */
#elif defined(NFS_ROOT)
nfs_setup_diskless();
#endif
- if (nfs_diskless_valid == 0)
+ if (nfs_diskless_valid == 0) {
+ CURVNET_RESTORE();
return (-1);
+ }
if (nfs_diskless_valid == 1)
nfs_convert_diskless();
@@ -516,6 +520,7 @@ nfs_mountroot(struct mount *mp)
nd->root_args.hostname = buf;
if ((error = nfs_mountdiskless(buf,
&nd->root_saddr, &nd->root_args, td, &vp, mp)) != 0) {
+ CURVNET_RESTORE();
return (error);
}
@@ -529,6 +534,7 @@ nfs_mountroot(struct mount *mp)
sizeof (prison0.pr_hostname));
mtx_unlock(&prison0.pr_mtx);
inittodr(ntohl(nd->root_time));
+ CURVNET_RESTORE();
return (0);
}
@@ -827,8 +833,6 @@ nfs_mount(struct mount *mp)
has_fh_opt = 0;
has_hostname_opt = 0;
- CURVNET_SET(CRED_TO_VNET(curthread->td_ucred));
-
if (vfs_filteropt(mp->mnt_optnew, nfs_opts)) {
error = EINVAL;
goto out;
@@ -1128,7 +1132,6 @@ out:
mp->mnt_kern_flag |= (MNTK_MPSAFE|MNTK_LOOKUP_SHARED);
MNT_IUNLOCK(mp);
}
- CURVNET_RESTORE();
return (error);
}