diff options
author | dim <dim@FreeBSD.org> | 2011-11-05 16:47:47 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2011-11-05 16:47:47 +0000 |
commit | 95e06f71997f7524b5771985e8737fd07aab1ef4 (patch) | |
tree | 7f0a100ca10d6b43e68d783026c2079c1d7f8533 /etc/rc.d/nfsd | |
parent | f805d16088594ac14ca784600c710e3826a3f264 (diff) | |
download | FreeBSD-src-95e06f71997f7524b5771985e8737fd07aab1ef4.zip FreeBSD-src-95e06f71997f7524b5771985e8737fd07aab1ef4.tar.gz |
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
Diffstat (limited to 'etc/rc.d/nfsd')
-rwxr-xr-x | etc/rc.d/nfsd | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/etc/rc.d/nfsd b/etc/rc.d/nfsd index 8dae57c..e1fd968 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 |