10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# 40696600cSBjoern A. Zeeb 50696600cSBjoern A. Zeeb# PROVIDE: mountcritremote 631b29217SRick Macklem# REQUIRE: NETWORKING FILESYSTEMS ipsec netwait nfscbd 70696600cSBjoern A. Zeeb# KEYWORD: nojail 80696600cSBjoern A. Zeeb 90696600cSBjoern A. Zeeb. /etc/rc.subr 100696600cSBjoern A. Zeeb 110696600cSBjoern A. Zeebname="mountcritremote" 120696600cSBjoern A. Zeebdesc="Mount critical remote filesystems" 130696600cSBjoern A. Zeebstop_cmd=":" 140696600cSBjoern A. Zeebstart_cmd="mountcritremote_start" 150696600cSBjoern A. Zeebstart_precmd="mountcritremote_precmd" 160696600cSBjoern A. Zeeb 170696600cSBjoern A. Zeeb# Mount NFS filesystems if present in /etc/fstab 180696600cSBjoern A. Zeeb# 190696600cSBjoern A. Zeeb# XXX When the vfsload() issues with nfsclient support and related sysctls 200696600cSBjoern A. Zeeb# have been resolved, this block can be removed, and the condition that 210696600cSBjoern A. Zeeb# skips nfs in the following block (for "other network filesystems") can 220696600cSBjoern A. Zeeb# be removed. 230696600cSBjoern A. Zeeb# 240696600cSBjoern A. Zeebmountcritremote_precmd() 250696600cSBjoern A. Zeeb{ 260696600cSBjoern A. Zeeb case "`mount -d -a -t nfs 2> /dev/null`" in 270696600cSBjoern A. Zeeb *mount_nfs*) 280696600cSBjoern A. Zeeb # Handle absent nfs client support 29b11974c2SChris Rees load_kld -m nfs nfscl || return 1 300696600cSBjoern A. Zeeb ;; 310696600cSBjoern A. Zeeb esac 320696600cSBjoern A. Zeeb return 0 330696600cSBjoern A. Zeeb} 340696600cSBjoern A. Zeeb 350696600cSBjoern A. Zeebmountcritremote_start() 360696600cSBjoern A. Zeeb{ 370696600cSBjoern A. Zeeb local mounted_remote_filesystem=false 380696600cSBjoern A. Zeeb 390696600cSBjoern A. Zeeb # Mount nfs filesystems. 400696600cSBjoern A. Zeeb # 410696600cSBjoern A. Zeeb case "`/sbin/mount -d -a -t nfs`" in 420696600cSBjoern A. Zeeb '') 430696600cSBjoern A. Zeeb ;; 440696600cSBjoern A. Zeeb *) 450696600cSBjoern A. Zeeb mounted_remote_filesystem=true 460696600cSBjoern A. Zeeb echo -n 'Mounting NFS filesystems:' 470696600cSBjoern A. Zeeb mount -a -t nfs 480696600cSBjoern A. Zeeb echo '.' 490696600cSBjoern A. Zeeb ;; 500696600cSBjoern A. Zeeb esac 510696600cSBjoern A. Zeeb 520696600cSBjoern A. Zeeb # Mount other network filesystems if present in /etc/fstab. 530696600cSBjoern A. Zeeb case ${extra_netfs_types} in 540696600cSBjoern A. Zeeb [Nn][Oo]) 550696600cSBjoern A. Zeeb ;; 560696600cSBjoern A. Zeeb *) 570696600cSBjoern A. Zeeb netfs_types="${netfs_types} ${extra_netfs_types}" 580696600cSBjoern A. Zeeb ;; 590696600cSBjoern A. Zeeb esac 600696600cSBjoern A. Zeeb 610696600cSBjoern A. Zeeb for i in ${netfs_types}; do 620696600cSBjoern A. Zeeb fstype=${i%:*} 630696600cSBjoern A. Zeeb fsdecr=${i#*:} 640696600cSBjoern A. Zeeb 650696600cSBjoern A. Zeeb [ "${fstype}" = "nfs" ] && continue 660696600cSBjoern A. Zeeb 670696600cSBjoern A. Zeeb case "`mount -d -a -t ${fstype}`" in 680696600cSBjoern A. Zeeb *mount_${fstype}*) 690696600cSBjoern A. Zeeb mounted_remote_filesystem=true 700696600cSBjoern A. Zeeb echo -n "Mounting ${fsdecr} filesystems:" 710696600cSBjoern A. Zeeb mount -a -t ${fstype} 720696600cSBjoern A. Zeeb echo '.' 730696600cSBjoern A. Zeeb ;; 740696600cSBjoern A. Zeeb esac 750696600cSBjoern A. Zeeb done 760696600cSBjoern A. Zeeb 770696600cSBjoern A. Zeeb if $mounted_remote_filesystem; then 780696600cSBjoern A. Zeeb # Cleanup /var again just in case it's a network mount. 790696600cSBjoern A. Zeeb /etc/rc.d/cleanvar quietreload 800696600cSBjoern A. Zeeb rm -f /var/run/clean_var /var/spool/lock/clean_var 810696600cSBjoern A. Zeeb 820696600cSBjoern A. Zeeb # Regenerate the ldconfig hints in case there are additional 830696600cSBjoern A. Zeeb # library paths on remote file systems 840696600cSBjoern A. Zeeb /etc/rc.d/ldconfig quietstart 850696600cSBjoern A. Zeeb fi 860696600cSBjoern A. Zeeb} 870696600cSBjoern A. Zeeb 880696600cSBjoern A. Zeebload_rc_config $name 89*f99f0ee1SAlexander Leidinger 90*f99f0ee1SAlexander Leidinger# mounting shall not be performed in a svcj 91*f99f0ee1SAlexander Leidingermountcritremote_svcj="NO" 92*f99f0ee1SAlexander Leidinger 930696600cSBjoern A. Zeebrun_rc_command "$1" 94