diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2009-06-02 22:15:47 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2009-06-02 22:15:47 +0000 |
commit | 0bff7488fb988a9a6e62cddf177ad456bfd43aaf (patch) | |
tree | 62472819818ec9abd8b1528f6a70e2b3a0878437 /etc | |
parent | b55d45b9c9f4259eb09b762956ea264a731bb796 (diff) | |
download | FreeBSD-src-0bff7488fb988a9a6e62cddf177ad456bfd43aaf.zip FreeBSD-src-0bff7488fb988a9a6e62cddf177ad456bfd43aaf.tar.gz |
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)
Diffstat (limited to 'etc')
-rw-r--r-- | etc/defaults/rc.conf | 5 | ||||
-rwxr-xr-x | etc/rc.d/Makefile | 4 | ||||
-rwxr-xr-x | etc/rc.d/mountd | 7 | ||||
-rwxr-xr-x | etc/rc.d/nfscbd | 19 | ||||
-rwxr-xr-x | etc/rc.d/nfsd | 32 | ||||
-rwxr-xr-x | etc/rc.d/nfsuserd | 19 |
6 files changed, 75 insertions, 11 deletions
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf index b1f09df..f381423 100644 --- a/etc/defaults/rc.conf +++ b/etc/defaults/rc.conf @@ -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). diff --git a/etc/rc.d/Makefile b/etc/rc.d/Makefile index abeb757..f2e2b4f 100755 --- a/etc/rc.d/Makefile +++ b/etc/rc.d/Makefile @@ -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 \ diff --git a/etc/rc.d/mountd b/etc/rc.d/mountd index 6f82601..e893e98 100755 --- a/etc/rc.d/mountd +++ b/etc/rc.d/mountd @@ -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 diff --git a/etc/rc.d/nfscbd b/etc/rc.d/nfscbd new file mode 100755 index 0000000..8fecfe9 --- /dev/null +++ b/etc/rc.d/nfscbd @@ -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" diff --git a/etc/rc.d/nfsd b/etc/rc.d/nfsd index 84bda25..bbfe563 100755 --- a/etc/rc.d/nfsd +++ b/etc/rc.d/nfsd @@ -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 } diff --git a/etc/rc.d/nfsuserd b/etc/rc.d/nfsuserd new file mode 100755 index 0000000..278c666 --- /dev/null +++ b/etc/rc.d/nfsuserd @@ -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" |