198184Sgordon#!/bin/sh
298184Sgordon#
398184Sgordon# $FreeBSD$
498184Sgordon#
598184Sgordon
698184Sgordon# PROVIDE: nfsclient
798184Sgordon# REQUIRE: NETWORKING mountcritremote rpcbind
8136224Smtm# KEYWORD: nojail shutdown
998184Sgordon
1098184Sgordon. /etc/rc.subr
1198184Sgordon
1298184Sgordonname="nfsclient"
1398184Sgordonrcvar="nfs_client_enable"
1498184Sgordonstart_cmd="nfsclient_start"
1598184Sgordonstop_cmd="unmount_all"
16222993Srmacklemrequired_modules="nfscl:nfs"
1798184Sgordon
1898184Sgordonnfsclient_start()
1998184Sgordon{
2098184Sgordon	#
2198184Sgordon	# Set some nfs client related sysctls
2298184Sgordon	#
2398184Sgordon
2498184Sgordon	if [ -n "${nfs_access_cache}" ]; then
25197947Sdougb		check_startmsgs &&
26197947Sdougb			echo "NFS access cache time=${nfs_access_cache}"
27180294Smtm		if ! sysctl vfs.nfs.access_cache_timeout=${nfs_access_cache} >/dev/null; then
28180294Smtm			warn "failed to set access cache timeout"
29180294Smtm		fi
3098184Sgordon	fi
3198184Sgordon	if [ -n "${nfs_bufpackets}" ]; then
32180294Smtm		if ! sysctl vfs.nfs.bufpackets=${nfs_bufpackets} > /dev/null; then
33180294Smtm			warn "failed to set vfs.nfs.bufpackets"
34180294Smtm		fi
3598184Sgordon	fi
3698184Sgordon
3798184Sgordon	unmount_all
3898184Sgordon}
3998184Sgordon
4098184Sgordonunmount_all()
4198184Sgordon{
4298184Sgordon	# If /var/db/mounttab exists, some nfs-server has not been
4398184Sgordon	# successfully notified about a previous client shutdown.
4498184Sgordon	# If there is no /var/db/mounttab, we do nothing.
4598184Sgordon	if [ -f /var/db/mounttab ]; then
4698184Sgordon		rpc.umntall -k
4798184Sgordon	fi
4898184Sgordon}
4998184Sgordonload_rc_config $name
5098184Sgordonrun_rc_command "$1"
51