178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $FreeBSD$ 478344Sobrien# 578344Sobrien 678344Sobrien# PROVIDE: mountcritremote 7240336Sobrien# REQUIRE: NETWORKING FILESYSTEMS ipsec netwait 8136224Smtm# KEYWORD: nojail 978344Sobrien 1078344Sobrien. /etc/rc.subr 1178344Sobrien 1278344Sobrienname="mountcritremote" 1378344Sobrienstop_cmd=":" 14124622Smtmstart_cmd="mountcritremote_start" 15124622Smtmstart_precmd="mountcritremote_precmd" 1678344Sobrien 1798184Sgordon# Mount NFS filesystems if present in /etc/fstab 1898184Sgordon# 1998184Sgordon# XXX When the vfsload() issues with nfsclient support and related sysctls 2098184Sgordon# have been resolved, this block can be removed, and the condition that 2198184Sgordon# skips nfs in the following block (for "other network filesystems") can 2298184Sgordon# be removed. 2398184Sgordon# 2498184Sgordonmountcritremote_precmd() 2598184Sgordon{ 2698184Sgordon case "`mount -d -a -t nfs 2> /dev/null`" in 2798184Sgordon *mount_nfs*) 2898184Sgordon # Handle absent nfs client support 29222993Srmacklem load_kld -m nfs nfscl || return 1 3098184Sgordon ;; 3198184Sgordon esac 3298184Sgordon return 0 3398184Sgordon} 3498184Sgordon 3598184Sgordonmountcritremote_start() 3698184Sgordon{ 37124622Smtm # Mount nfs filesystems. 38124622Smtm # 39179928Smtm case "`/sbin/mount -d -a -t nfs`" in 40179928Smtm '') 41179928Smtm ;; 42179928Smtm *) 43179928Smtm echo -n 'Mounting NFS file systems:' 44179928Smtm mount -a -t nfs 45179928Smtm echo '.' 46179928Smtm ;; 47179928Smtm esac 4898184Sgordon 49124622Smtm # Mount other network filesystems if present in /etc/fstab. 50124622Smtm case ${extra_netfs_types} in 51124622Smtm [Nn][Oo]) 52124622Smtm ;; 53124622Smtm *) 54124622Smtm netfs_types="${netfs_types} ${extra_netfs_types}" 55124622Smtm ;; 56124622Smtm esac 57115585Sgordon 58124622Smtm for i in ${netfs_types}; do 59124622Smtm fstype=${i%:*} 60124622Smtm fsdecr=${i#*:} 6198184Sgordon 62124622Smtm [ "${fstype}" = "nfs" ] && continue 6398184Sgordon 64124622Smtm case "`mount -d -a -t ${fstype}`" in 65124622Smtm *mount_${fstype}*) 66124622Smtm echo -n "Mounting ${fsdecr} file systems:" 67124622Smtm mount -a -t ${fstype} 68124622Smtm echo '.' 69124622Smtm ;; 70124622Smtm esac 71124622Smtm done 7298184Sgordon 73124622Smtm # Cleanup /var again just in case it's a network mount. 74175686Smtm /etc/rc.d/cleanvar quietreload 75124622Smtm rm -f /var/run/clean_var /var/spool/lock/clean_var 7698184Sgordon} 7798184Sgordon 7878344Sobrienload_rc_config $name 7978344Sobrienrun_rc_command "$1" 80