Add support for the experimental nfs subsystem to the scripts in

/etc/rc.d. They use the following new rc variables:
  nfsv4_server_enable - set to "YES" to run the experimental server
  nfsuserd_enable - set to "YES" to run nfsuserd for NFSv4 client and
    server
  nfsuserd_flags - command line flags for nfsuserd
  nfscbd_enable - set to "YES" to run the experimental nfs client's
    NFSv4 callback daemon
  nfscbd_flags - command line flags for nfscbd

Reviewed by:	dougb
Approved by:	kib (mentor)
This commit is contained in:
Rick Macklem 2009-06-02 22:15:47 +00:00
parent 3050678410
commit f0a011a1b1
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=193354
6 changed files with 75 additions and 11 deletions

View File

@ -315,6 +315,11 @@ rpcbind_flags="" # Flags to rpcbind (if enabled).
rpc_ypupdated_enable="NO" # Run if NIS master and SecureRPC (or NO).
keyserv_enable="NO" # Run the SecureRPC keyserver (or NO).
keyserv_flags="" # Flags to keyserv (if enabled).
nfsv4_server_enable="NO" # Enable support for NFSv4
nfscbd_enable="NO" # NFSv4 client side callback daemon
nfscbd_flags="" # Flags for nfscbd
nfsuserd_enable="NO" # NFSv4 user/group name mapping daemon
nfsuserd_flags="" # Flags for nfsuserd
### Network Time Services options: ###
timed_enable="NO" # Run the time daemon (or NO).

View File

@ -23,8 +23,8 @@ FILES= DAEMON FILESYSTEMS LOGIN NETWORKING SERVERS \
mixer motd mountcritlocal mountcritremote mountlate \
mdconfig mdconfig2 mountd moused mroute6d mrouted msgs \
named natd netif netoptions \
network_ipv6 newsyslog nfsclient nfsd \
nfsserver nisdomain nsswitch ntpd ntpdate \
network_ipv6 newsyslog nfsclient nfscbd nfsd \
nfsserver nfsuserd nisdomain nsswitch ntpd ntpdate \
othermta \
pf pflog pfsync \
powerd power_profile ppp pppoed pwcheck \

View File

@ -37,6 +37,13 @@ mountd_precmd()
fi
fi
# If nfsv4_server_enable is yes, force use of the experimental
# server
#
if checkyesno nfsv4_server_enable; then
rc_flags="-e ${rc_flags}"
fi
if checkyesno zfs_enable; then
rc_flags="${rc_flags} /etc/exports /etc/zfs/exports"
fi

19
etc/rc.d/nfscbd Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: nfscbd
# REQUIRE: NETWORKING nfsuserd
# KEYWORD: nojail shutdown
. /etc/rc.subr
name="nfscbd"
rcvar=`set_rcvar`
command="/usr/sbin/${name}"
sig_stop="USR1"
load_rc_config $name
run_rc_command "$1"

View File

@ -4,7 +4,7 @@
#
# PROVIDE: nfsd
# REQUIRE: mountd hostname gssd
# REQUIRE: mountd hostname gssd nfsuserd
# KEYWORD: nojail shutdown
. /etc/rc.subr
@ -14,14 +14,33 @@ rcvar=`set_rcvar nfs_server`
command="/usr/sbin/${name}"
load_rc_config $name
command_args="${nfs_server_flags}"
start_precmd="nfsd_precmd"
sig_stop="USR1"
nfsd_precmd()
{
if ! sysctl vfs.nfsrv >/dev/null 2>&1; then
force_depend nfsserver || return 1
if checkyesno nfsv4_server_enable; then
# If nfsv4_server_enable is yes, force use
# of the experimental server
#
rc_flags="-e ${nfs_server_flags}"
if ! checkyesno nfsuserd_enable && \
! /etc/rc.d/nfsuserd forcestatus 1>/dev/null 2>&1
then
force_depend nfsuserd || return 1
fi
else
rc_flags="${nfs_server_flags}"
if ! sysctl vfs.nfsrv >/dev/null 2>&1; then
force_depend nfsserver || return 1
fi
if checkyesno nfs_reserved_port_only; then
echo 'NFS on reserved port only=YES'
sysctl vfs.nfsrv.nfs_privport=1 > /dev/null
fi
fi
if ! checkyesno rpcbind_enable && \
@ -35,11 +54,6 @@ nfsd_precmd()
then
force_depend mountd || return 1
fi
if checkyesno nfs_reserved_port_only; then
echo 'NFS on reserved port only=YES'
sysctl vfs.nfsrv.nfs_privport=1 > /dev/null
fi
return 0
}

19
etc/rc.d/nfsuserd Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: nfsuserd
# REQUIRE: NETWORKING
# KEYWORD: nojail shutdown
. /etc/rc.subr
name="nfsuserd"
rcvar=`set_rcvar`
command="/usr/sbin/${name}"
sig_stop="USR1"
load_rc_config $name
run_rc_command "$1"