aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2011-11-05 16:47:47 +0000
committerDimitry Andric <dim@FreeBSD.org>2011-11-05 16:47:47 +0000
commit66aa9b8dc9fbad0093e1f53e8388d37a2dbb3eb4 (patch)
tree7f0a100ca10d6b43e68d783026c2079c1d7f8533 /etc
parentdf663c3dd3b49b10257da455a15f30c2869a40ad (diff)
downloadsrc-66aa9b8dc9fbad0093e1f53e8388d37a2dbb3eb4.tar.gz
src-66aa9b8dc9fbad0093e1f53e8388d37a2dbb3eb4.zip
Whenever you boot with nfsv4_server_enable=NO (the default) in rc.conf,
the /etc/rc.d/nfsd script sets vfs.nfsd.server_max_nfsvers to 3. Then, when you set nfsv4_server_enable=YES in rc.conf, and restart nfsd via the rc.d script, without rebooting, the sysctl does *not* get reset to max version 4, so NFSv4 still doesn't work. Fix this by explicitly setting vfs.nfsd.server_max_nfsvers to 4 when NFSv4 is requested. I also added resetting of the nfs_privport sysctls, since this has the same issue: nfs_reserved_port_only=YES in rc.conf sets the nfs_privport sysctl to 1, but in the other case, the sysctl doesn't get reset to 0. Reviewed by: rmacklem Silence from: rc@ MFC after: 3 days
Notes
Notes: svn path=/head/; revision=227112
Diffstat (limited to 'etc')
-rwxr-xr-xetc/rc.d/nfsd5
1 files changed, 5 insertions, 0 deletions
diff --git a/etc/rc.d/nfsd b/etc/rc.d/nfsd
index 8dae57c9ba1f..e1fd9681ddd7 100755
--- a/etc/rc.d/nfsd
+++ b/etc/rc.d/nfsd
@@ -29,6 +29,8 @@ nfsd_precmd()
if checkyesno nfs_reserved_port_only; then
echo 'NFS on reserved port only=YES'
sysctl vfs.nfsrv.nfs_privport=1 > /dev/null
+ else
+ sysctl vfs.nfsrv.nfs_privport=0 > /dev/null
fi
else
rc_flags="${nfs_server_flags}"
@@ -40,9 +42,12 @@ nfsd_precmd()
if checkyesno nfs_reserved_port_only; then
echo 'NFS on reserved port only=YES'
sysctl vfs.nfsd.nfs_privport=1 > /dev/null
+ else
+ sysctl vfs.nfsd.nfs_privport=0 > /dev/null
fi
if checkyesno nfsv4_server_enable; then
+ sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null
if ! checkyesno nfsuserd_enable && \
! /etc/rc.d/nfsuserd forcestatus 1>/dev/null 2>&1
then