Author: dim
Date: Sat Nov  5 16:47:47 2011
New Revision: 227112
URL: http://svn.freebsd.org/changeset/base/227112

Log:
  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

Modified:
  head/etc/rc.d/nfsd

Modified: head/etc/rc.d/nfsd
==============================================================================
--- head/etc/rc.d/nfsd  Sat Nov  5 16:44:25 2011        (r227111)
+++ head/etc/rc.d/nfsd  Sat Nov  5 16:47:47 2011        (r227112)
@@ -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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to