zfs revision 168956
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/zfs 168956 2007-04-22 20:55:08Z pjd $ 4# 5 6# PROVIDE: zfs 7# REQUIRE: mountcritlocal 8 9. /etc/rc.subr 10 11name="zfs" 12rcvar="zfs_enable" 13start_cmd="zfs_start" 14stop_cmd="zfs_stop" 15required_modules="zfs" 16 17zfs_start_jail() 18{ 19 if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then 20 zfs mount -a 21 fi 22} 23 24zfs_start_main() 25{ 26 zfs volinit 27 zfs mount -a 28 zfs share -a 29 if [ ! -r /etc/zfs/exports ]; then 30 touch /etc/zfs/exports 31 fi 32 # Enable swap on ZVOLs with property org.freebsd:swap=on. 33 zfs list -H -o org.freebsd:swap,name -t volume | \ 34 while read state name; do 35 case "${state}" in 36 [oO][nN]) 37 swapon /dev/zvol/${name} 38 ;; 39 esac 40 done 41} 42 43zfs_start() 44{ 45 if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then 46 zfs_start_jail 47 else 48 zfs_start_main 49 fi 50} 51 52zfs_stop_jail() 53{ 54 if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then 55 zfs unmount -a 56 fi 57} 58 59zfs_stop_main() 60{ 61 # Disable swap on ZVOLs with property org.freebsd:swap=on. 62 zfs list -H -o org.freebsd:swap,name -t volume | \ 63 while read state name; do 64 case "${state}" in 65 [oO][nN]) 66 swapoff /dev/zvol/${name} 67 ;; 68 esac 69 done 70 zfs unshare -a 71 zfs unmount -a 72 zfs volfini 73} 74 75zfs_stop() 76{ 77 if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then 78 zfs_stop_jail 79 else 80 zfs_stop_main 81 fi 82} 83 84load_rc_config $name 85run_rc_command "$1" 86