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