diff --git a/libexec/rc/rc.d/mountd b/libexec/rc/rc.d/mountd index 0c6e75f07d64..d75416736245 100755 --- a/libexec/rc/rc.d/mountd +++ b/libexec/rc/rc.d/mountd @@ -1,70 +1,72 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: mountd # REQUIRE: NETWORKING rpcbind quota mountlate # KEYWORD: nojail shutdown . /etc/rc.subr name="mountd" desc="Service remote NFS mount requests" rcvar="mountd_enable" command="/usr/sbin/${name}" pidfile="/var/run/${name}.pid" required_files="/etc/exports" start_precmd="mountd_precmd" extra_commands="reload" mountd_precmd() { # Load the modules now, so that the vfs.nfsd sysctl # oids are available. load_kld nfsd || return 1 # Do not force rpcbind to be running for an NFSv4 only server. # if checkyesno nfsv4_server_only; then echo 'NFSv4 only server' sysctl vfs.nfsd.server_min_nfsvers=4 > /dev/null sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null rc_flags="${rc_flags} -R" else force_depend rpcbind || return 1 - if ! checkyesno nfsv4_server_enable; then + if checkyesno nfsv4_server_enable; then + sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null + else sysctl vfs.nfsd.server_max_nfsvers=3 > /dev/null fi fi # mountd flags will differ depending on rc.conf settings # if checkyesno nfs_server_enable || checkyesno nfsv4_server_only; then if checkyesno weak_mountd_authentication; then if checkyesno nfsv4_server_only; then echo -n 'weak_mountd_authentication ' echo -n 'incompatible with nfsv4_server_only, ' echo 'ignored' else rc_flags="${rc_flags} -n" fi fi else if checkyesno mountd_enable; then checkyesno weak_mountd_authentication && rc_flags="-n" fi fi if checkyesno zfs_enable; then rc_flags="${rc_flags} /etc/exports /etc/zfs/exports" fi rm -f /var/db/mountdtab ( umask 022 ; > /var/db/mountdtab ) || err 1 'Cannot create /var/db/mountdtab' } load_rc_config $name run_rc_command "$1"