diff options
Diffstat (limited to 'sys-freebsd/freebsd-cddl/files/zvol.initd')
-rwxr-xr-x | sys-freebsd/freebsd-cddl/files/zvol.initd | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/sys-freebsd/freebsd-cddl/files/zvol.initd b/sys-freebsd/freebsd-cddl/files/zvol.initd new file mode 100755 index 000000000000..5a593faec699 --- /dev/null +++ b/sys-freebsd/freebsd-cddl/files/zvol.initd @@ -0,0 +1,47 @@ +#!/sbin/runscript +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +depend() { + need hostid + before fsck +} + +start() { + einfo "Starting zfs volumes..." + zfs volinit + eend $? + # Enable swap on ZVOLs that have org.freebsd:swap=on. + zfs list -H -o org.freebsd:swap,name -t volume | \ + while read state name; do + case "${state}" in + [oO][nN]) + einfo "Enabling swap on zvol ${name}" + swapon /dev/zvol/${name} + eend $? + ;; + esac + done +} + +stop() { + # Disable what we had enabled before. + zfs list -H -o org.freebsd:swap,name -t volume | \ + while read state name; do + case "${state}" in + [oO][nN]) + einfo "Disabling swap on zvol ${name}" + swapoff /dev/zvol/${name} + eend $? + ;; + esac + done + einfo "Stopping zfs volumes..." + zfs volfini + eend $? +} + +restart() { + : +} |