]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - etc/rc.d/mountcritremote
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / etc / rc.d / mountcritremote
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: mountcritremote
7 # REQUIRE: NETWORKING FILESYSTEMS ipsec netwait
8 # KEYWORD: nojail
9
10 . /etc/rc.subr
11
12 name="mountcritremote"
13 stop_cmd=":"
14 start_cmd="mountcritremote_start"
15 start_precmd="mountcritremote_precmd"
16
17 # Mount NFS filesystems if present in /etc/fstab
18 #
19 # XXX When the vfsload() issues with nfsclient support and related sysctls
20 # have been resolved, this block can be removed, and the condition that
21 # skips nfs in the following block (for "other network filesystems") can
22 # be removed.
23 #
24 mountcritremote_precmd()
25 {
26         case "`mount -d -a -t nfs 2> /dev/null`" in
27         *mount_nfs*)
28                 # Handle absent nfs client support
29                 load_kld -m nfs nfscl || return 1
30                 ;;
31         esac
32         return 0
33 }
34
35 mountcritremote_start()
36 {
37         # Mount nfs filesystems.
38         #
39         case "`/sbin/mount -d -a -t nfs`" in
40         '')
41                 ;;
42         *)
43                 echo -n 'Mounting NFS file systems:'
44                 mount -a -t nfs
45                 echo '.'
46                 ;;
47         esac
48
49         # Mount other network filesystems if present in /etc/fstab.
50         case ${extra_netfs_types} in
51         [Nn][Oo])
52                 ;;
53         *)
54                 netfs_types="${netfs_types} ${extra_netfs_types}"
55                 ;;
56         esac
57
58         for i in ${netfs_types}; do
59                 fstype=${i%:*}
60                 fsdecr=${i#*:}
61
62                 [ "${fstype}" = "nfs" ] && continue
63
64                 case "`mount -d -a -t ${fstype}`" in
65                 *mount_${fstype}*)
66                         echo -n "Mounting ${fsdecr} file systems:"
67                         mount -a -t ${fstype}
68                         echo '.'
69                         ;;
70                 esac
71         done
72
73         # Cleanup /var again just in case it's a network mount.
74         /etc/rc.d/cleanvar quietreload
75         rm -f /var/run/clean_var /var/spool/lock/clean_var
76 }
77
78 load_rc_config $name
79 run_rc_command "$1"