]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sbin/init/rc.d/zvol
UPDATING: Add note about efifb support and serial output
[FreeBSD/FreeBSD.git] / sbin / init / 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 desc="Activate swap on ZVOLs"
15 rcvar="zfs_enable"
16 start_cmd="zvol_start"
17 stop_cmd="zvol_stop"
18 required_modules="zfs"
19
20 zvol_start()
21 {
22         # Enable swap on ZVOLs with property org.freebsd:swap=on.
23         zfs list -H -o org.freebsd:swap,name -t volume |
24         while read state name; do
25                 case "${state}" in
26                 ([oO][nN])
27                         swapon /dev/zvol/${name}
28                         ;;
29                 esac
30         done
31 }
32
33 zvol_stop()
34 {
35         # Disable swap on ZVOLs with property org.freebsd:swap=on.
36         zfs list -H -o org.freebsd:swap,name -t volume |
37         while read state name; do
38                 case "${state}" in
39                 ([oO][nN])
40                         swapoff /dev/zvol/${name}
41                         ;;
42                 esac
43         done
44 }
45
46 load_rc_config $name
47 run_rc_command "$1"