]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - etc/rc.d/zvol
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / etc / rc.d / zvol
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: zvol
7 # REQUIRE: hostid
8 # BEFORE: fsck
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         zfs volinit
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         zfs volfini
45 }
46
47 load_rc_config $name
48 run_rc_command "$1"