xref: /freebsd/libexec/rc/rc.d/zvol (revision f99f0ee14e3af81c23150a6a340259ca8a33d01a)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb#
40696600cSBjoern A. Zeeb
50696600cSBjoern A. Zeeb# PROVIDE: zvol
674e2b24fSCy Schubert# REQUIRE: zpool
70696600cSBjoern A. Zeeb# KEYWORD: nojail
80696600cSBjoern A. Zeeb
90696600cSBjoern A. Zeeb. /etc/rc.subr
100696600cSBjoern A. Zeeb
110696600cSBjoern A. Zeebname="zvol"
120696600cSBjoern A. Zeebdesc="Activate swap on ZVOLs"
130696600cSBjoern A. Zeebrcvar="zfs_enable"
140696600cSBjoern A. Zeebstart_cmd="zvol_start"
150696600cSBjoern A. Zeebstop_cmd="zvol_stop"
160696600cSBjoern A. Zeebrequired_modules="zfs"
170696600cSBjoern A. Zeeb
180696600cSBjoern A. Zeebzvol_start()
190696600cSBjoern A. Zeeb{
200696600cSBjoern A. Zeeb	# Enable swap on ZVOLs with property org.freebsd:swap=on.
210696600cSBjoern A. Zeeb	zfs list -H -o org.freebsd:swap,name -t volume |
220696600cSBjoern A. Zeeb	while read state name; do
230696600cSBjoern A. Zeeb		case "${state}" in
240696600cSBjoern A. Zeeb		([oO][nN])
250696600cSBjoern A. Zeeb			swapon /dev/zvol/${name}
260696600cSBjoern A. Zeeb			;;
270696600cSBjoern A. Zeeb		esac
280696600cSBjoern A. Zeeb	done
290696600cSBjoern A. Zeeb}
300696600cSBjoern A. Zeeb
310696600cSBjoern A. Zeebzvol_stop()
320696600cSBjoern A. Zeeb{
330696600cSBjoern A. Zeeb	# Disable swap on ZVOLs with property org.freebsd:swap=on.
340696600cSBjoern A. Zeeb	zfs list -H -o org.freebsd:swap,name -t volume |
350696600cSBjoern A. Zeeb	while read state name; do
360696600cSBjoern A. Zeeb		case "${state}" in
370696600cSBjoern A. Zeeb		([oO][nN])
380696600cSBjoern A. Zeeb			swapoff /dev/zvol/${name}
390696600cSBjoern A. Zeeb			;;
400696600cSBjoern A. Zeeb		esac
410696600cSBjoern A. Zeeb	done
420696600cSBjoern A. Zeeb}
430696600cSBjoern A. Zeeb
440696600cSBjoern A. Zeebload_rc_config $name
45*f99f0ee1SAlexander Leidinger
46*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: config setting
47*f99f0ee1SAlexander Leidingerzvol_svcj="NO"
48*f99f0ee1SAlexander Leidinger
490696600cSBjoern A. Zeebrun_rc_command "$1"
50