1*0696600cSBjoern A. Zeeb#!/bin/sh 2*0696600cSBjoern A. Zeeb# 3*0696600cSBjoern A. Zeeb# $FreeBSD$ 4*0696600cSBjoern A. Zeeb# 5*0696600cSBjoern A. Zeeb 6*0696600cSBjoern A. Zeeb# PROVIDE: zfs 7*0696600cSBjoern A. Zeeb# REQUIRE: zfsbe 8*0696600cSBjoern A. Zeeb# BEFORE: FILESYSTEMS var 9*0696600cSBjoern A. Zeeb 10*0696600cSBjoern A. Zeeb. /etc/rc.subr 11*0696600cSBjoern A. Zeeb 12*0696600cSBjoern A. Zeebname="zfs" 13*0696600cSBjoern A. Zeebdesc="Mount and share ZFS datasets" 14*0696600cSBjoern A. Zeebrcvar="zfs_enable" 15*0696600cSBjoern A. Zeebstart_cmd="zfs_start" 16*0696600cSBjoern A. Zeebstop_cmd="zfs_stop" 17*0696600cSBjoern A. Zeebrequired_modules="zfs" 18*0696600cSBjoern A. Zeeb 19*0696600cSBjoern A. Zeebzfs_start_jail() 20*0696600cSBjoern A. Zeeb{ 21*0696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then 22*0696600cSBjoern A. Zeeb zfs mount -a 23*0696600cSBjoern A. Zeeb fi 24*0696600cSBjoern A. Zeeb} 25*0696600cSBjoern A. Zeeb 26*0696600cSBjoern A. Zeebzfs_start_main() 27*0696600cSBjoern A. Zeeb{ 28*0696600cSBjoern A. Zeeb zfs mount -va 29*0696600cSBjoern A. Zeeb zfs share -a 30*0696600cSBjoern A. Zeeb if [ ! -r /etc/zfs/exports ]; then 31*0696600cSBjoern A. Zeeb touch /etc/zfs/exports 32*0696600cSBjoern A. Zeeb fi 33*0696600cSBjoern A. Zeeb} 34*0696600cSBjoern A. Zeeb 35*0696600cSBjoern A. Zeebzfs_start() 36*0696600cSBjoern A. Zeeb{ 37*0696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then 38*0696600cSBjoern A. Zeeb zfs_start_jail 39*0696600cSBjoern A. Zeeb else 40*0696600cSBjoern A. Zeeb zfs_start_main 41*0696600cSBjoern A. Zeeb fi 42*0696600cSBjoern A. Zeeb} 43*0696600cSBjoern A. Zeeb 44*0696600cSBjoern A. Zeebzfs_stop_jail() 45*0696600cSBjoern A. Zeeb{ 46*0696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then 47*0696600cSBjoern A. Zeeb zfs unmount -a 48*0696600cSBjoern A. Zeeb fi 49*0696600cSBjoern A. Zeeb} 50*0696600cSBjoern A. Zeeb 51*0696600cSBjoern A. Zeebzfs_stop_main() 52*0696600cSBjoern A. Zeeb{ 53*0696600cSBjoern A. Zeeb zfs unshare -a 54*0696600cSBjoern A. Zeeb zfs unmount -a 55*0696600cSBjoern A. Zeeb} 56*0696600cSBjoern A. Zeeb 57*0696600cSBjoern A. Zeebzfs_stop() 58*0696600cSBjoern A. Zeeb{ 59*0696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then 60*0696600cSBjoern A. Zeeb zfs_stop_jail 61*0696600cSBjoern A. Zeeb else 62*0696600cSBjoern A. Zeeb zfs_stop_main 63*0696600cSBjoern A. Zeeb fi 64*0696600cSBjoern A. Zeeb} 65*0696600cSBjoern A. Zeeb 66*0696600cSBjoern A. Zeebload_rc_config $name 67*0696600cSBjoern A. Zeebrun_rc_command "$1" 68