1195938Spjd#!/bin/sh
2195938Spjd#
3195938Spjd# $FreeBSD$
4195938Spjd#
5195938Spjd
6195938Spjd# PROVIDE: zvol
7195938Spjd# REQUIRE: hostid
8301612Sngie# BEFORE: dumpon
9195938Spjd# KEYWORD: nojail
10195938Spjd
11195938Spjd. /etc/rc.subr
12195938Spjd
13195938Spjdname="zvol"
14195938Spjdrcvar="zfs_enable"
15195938Spjdstart_cmd="zvol_start"
16195938Spjdstop_cmd="zvol_stop"
17195938Spjdrequired_modules="zfs"
18195938Spjd
19195938Spjdzvol_start()
20195938Spjd{
21195938Spjd	# Enable swap on ZVOLs with property org.freebsd:swap=on.
22195938Spjd	zfs list -H -o org.freebsd:swap,name -t volume | \
23195938Spjd	while read state name; do
24195938Spjd		case "${state}" in
25195938Spjd		[oO][nN])
26195938Spjd			swapon /dev/zvol/${name}
27195938Spjd			;;
28195938Spjd		esac
29195938Spjd	done
30195938Spjd}
31195938Spjd
32195938Spjdzvol_stop()
33195938Spjd{
34195938Spjd	# Disable swap on ZVOLs with property org.freebsd:swap=on.
35195938Spjd	zfs list -H -o org.freebsd:swap,name -t volume | \
36195938Spjd	while read state name; do
37195938Spjd		case "${state}" in
38195938Spjd		[oO][nN])
39195938Spjd			swapoff /dev/zvol/${name}
40195938Spjd			;;
41195938Spjd		esac
42195938Spjd	done
43195938Spjd}
44195938Spjd
45195938Spjdload_rc_config $name
46195938Spjdrun_rc_command "$1"
47