]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - etc/rc.d/zvol
MFC r299839,r299840,r299841:
[FreeBSD/stable/10.git] / etc / rc.d / zvol
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: zvol
7 # REQUIRE: hostid
8 # BEFORE: dumpon
9 # KEYWORD: nojail
10
11 . /etc/rc.subr
12
13 name="zvol"
14 rcvar="zfs_enable"
15 start_cmd="zvol_start"
16 stop_cmd="zvol_stop"
17 required_modules="zfs"
18
19 zvol_start()
20 {
21         # Enable swap on ZVOLs with property org.freebsd:swap=on.
22         zfs list -H -o org.freebsd:swap,name -t volume | \
23         while read state name; do
24                 case "${state}" in
25                 [oO][nN])
26                         swapon /dev/zvol/${name}
27                         ;;
28                 esac
29         done
30 }
31
32 zvol_stop()
33 {
34         # Disable swap on ZVOLs with property org.freebsd:swap=on.
35         zfs list -H -o org.freebsd:swap,name -t volume | \
36         while read state name; do
37                 case "${state}" in
38                 [oO][nN])
39                         swapoff /dev/zvol/${name}
40                         ;;
41                 esac
42         done
43 }
44
45 load_rc_config $name
46 run_rc_command "$1"