FreeNAS Code
This project has moved to github - see https://github.com/freenas
Brought to you by:
cochard,
mattolander
#!/bin/sh # # $FreeBSD: src/etc/rc.d/zfs,v 1.5 2007/04/22 20:55:08 pjd Exp $ # # Modified by Volker Theile (votdev@gmx.de) # # PROVIDE: zfs # REQUIRE: mountcritlocal # XQUERY: -i "count(//zfs/pools/pool) > 0" -o "0" -b # RCVAR: zfs . /etc/rc.subr . /etc/configxml.subr name="zfs" rcvar="zfs_enable" start_cmd="zfs_start" stop_cmd="zfs_stop" required_modules="zfs" zfs_start_jail() { if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then zfs mount -a fi } zfs_start_main() { zfs volinit zfs mount -a zfs share -a if [ ! -r /etc/zfs/exports ]; then touch /etc/zfs/exports fi # Enable swap on ZVOLs with property org.freebsd:swap=on. zfs list -H -o org.freebsd:swap,name -t volume | \ while read state name; do case "${state}" in [oO][nN]) swapon /dev/zvol/${name} ;; esac done } zfs_start() { if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then zfs_start_jail else zfs_start_main fi } zfs_stop_jail() { if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then zfs unmount -a fi } zfs_stop_main() { # Disable swap on ZVOLs with property org.freebsd:swap=on. zfs list -H -o org.freebsd:swap,name -t volume | \ while read state name; do case "${state}" in [oO][nN]) swapoff /dev/zvol/${name} ;; esac done zfs unshare -a zfs unmount -a zfs volfini } zfs_stop() { if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then zfs_stop_jail else zfs_stop_main fi } load_rc_config $name run_rc_command "$1"