1#!/bin/sh 2# 3# $FreeBSD: src/etc/rc.d/nfsclient,v 1.3 2002/10/12 10:31:31 schweikh Exp $ 4# $DragonFly: src/etc/rc.d/nfsclient,v 1.5 2005/03/17 22:25:15 dillon Exp $ 5# 6 7# PROVIDE: nfsclient 8# REQUIRE: NETWORKING mountcritremote rpcbind 9# KEYWORD: DragonFly shutdown 10 11. /etc/rc.subr 12 13name="nfsclient" 14rcvar="nfs_client_enable" 15start_cmd="nfsclient_start" 16start_precmd="nfsclient_precmd" 17stop_cmd="unmount_all" 18 19# Load nfs module if it was not compiled into the kernel 20nfsclient_precmd() 21{ 22 if ! sysctl vfs.nfs >/dev/null 2>&1; then 23 if ! kldload nfs; then 24 warn 'Could not load nfs module' 25 return 1 26 fi 27 fi 28 return 0 29} 30 31nfsclient_start() 32{ 33 # 34 # Run nfsiod and set some nfs client related sysctls 35 # 36 echo -n "NFS CLIENT:" 37 if [ -n "${nfs_client_flags}" ]; then 38 echo -n ' nfsiod' 39 nfsiod ${nfs_client_flags} 40 fi 41 42 if [ -n "${nfs_access_cache}" ]; then 43 sysctl vfs.nfs.access_cache_timeout=${nfs_access_cache} >/dev/null 44 fi 45 if [ -n "${nfs_neg_cache}" ]; then 46 sysctl vfs.nfs.neg_cache_timeout=${nfs_neg_cache} >/dev/null 47 fi 48 if [ -n "${nfs_bufpackets}" ]; then 49 sysctl vfs.nfs.bufpackets=${nfs_bufpackets} > /dev/null 50 fi 51 echo -n " access_cache_timeout=`sysctl -n vfs.nfs.access_cache_timeout`" 52 echo -n " neg_cache_timeout=`sysctl -n vfs.nfs.neg_cache_timeout`" 53 echo "" 54 unmount_all 55} 56 57unmount_all() 58{ 59 # If /var/db/mounttab exists, some nfs-server has not been 60 # successfully notified about a previous client shutdown. 61 # If there is no /var/db/mounttab, we do nothing. 62 63 if checkyesno rpc_umntall_enable; then 64 if [ -f /var/db/mounttab ]; then 65 echo -n ' rpc.umntall' 66 rpc.umntall -k -f 67 fi 68 fi 69} 70load_rc_config $name 71run_rc_command "$1" 72