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