]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - libexec/rc/rc.d/zvol
Fix issues with various VNC clients.
[FreeBSD/FreeBSD.git] / libexec / rc / rc.d / zvol
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: zvol
7 # REQUIRE: zpool
8 # KEYWORD: nojail
9
10 . /etc/rc.subr
11
12 name="zvol"
13 desc="Activate swap on ZVOLs"
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"