10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# 40696600cSBjoern A. Zeeb 50696600cSBjoern A. Zeeb# PROVIDE: zfs 60696600cSBjoern A. Zeeb# REQUIRE: zfsbe 70696600cSBjoern A. Zeeb# BEFORE: FILESYSTEMS var 80696600cSBjoern A. Zeeb 90696600cSBjoern A. Zeeb. /etc/rc.subr 100696600cSBjoern A. Zeeb 110696600cSBjoern A. Zeebname="zfs" 120696600cSBjoern A. Zeebdesc="Mount and share ZFS datasets" 130696600cSBjoern A. Zeebrcvar="zfs_enable" 140696600cSBjoern A. Zeebstart_cmd="zfs_start" 1597aeda22SMateusz Piotrowskistart_postcmd="zfs_poststart" 160696600cSBjoern A. Zeebstop_cmd="zfs_stop" 170696600cSBjoern A. Zeebrequired_modules="zfs" 180696600cSBjoern A. Zeeb 190696600cSBjoern A. Zeebzfs_start_jail() 200696600cSBjoern A. Zeeb{ 210696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then 220696600cSBjoern A. Zeeb zfs mount -a 230696600cSBjoern A. Zeeb fi 240696600cSBjoern A. Zeeb} 250696600cSBjoern A. Zeeb 260696600cSBjoern A. Zeebzfs_start_main() 270696600cSBjoern A. Zeeb{ 280696600cSBjoern A. Zeeb zfs mount -va 290696600cSBjoern A. Zeeb zfs share -a 300696600cSBjoern A. Zeeb if [ ! -r /etc/zfs/exports ]; then 310696600cSBjoern A. Zeeb touch /etc/zfs/exports 320696600cSBjoern A. Zeeb fi 330696600cSBjoern A. Zeeb} 340696600cSBjoern A. Zeeb 350696600cSBjoern A. Zeebzfs_start() 360696600cSBjoern A. Zeeb{ 370696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then 380696600cSBjoern A. Zeeb zfs_start_jail 390696600cSBjoern A. Zeeb else 400696600cSBjoern A. Zeeb zfs_start_main 410696600cSBjoern A. Zeeb fi 420696600cSBjoern A. Zeeb} 430696600cSBjoern A. Zeeb 4497aeda22SMateusz Piotrowskizfs_poststart() 4597aeda22SMateusz Piotrowski{ 4697aeda22SMateusz Piotrowski # Some of the keys to decrypt datasets are potentially stored on ZFS 4797aeda22SMateusz Piotrowski # datasets that just got mounted. Let's try to load those keys and 4897aeda22SMateusz Piotrowski # mount the datasets. 4997aeda22SMateusz Piotrowski if checkyesno zfskeys_enable; then 5097aeda22SMateusz Piotrowski /etc/rc.d/zfskeys start 5197aeda22SMateusz Piotrowski zfs_start 5297aeda22SMateusz Piotrowski fi 5397aeda22SMateusz Piotrowski} 5497aeda22SMateusz Piotrowski 550696600cSBjoern A. Zeebzfs_stop_jail() 560696600cSBjoern A. Zeeb{ 570696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then 580696600cSBjoern A. Zeeb zfs unmount -a 590696600cSBjoern A. Zeeb fi 600696600cSBjoern A. Zeeb} 610696600cSBjoern A. Zeeb 620696600cSBjoern A. Zeebzfs_stop_main() 630696600cSBjoern A. Zeeb{ 640696600cSBjoern A. Zeeb zfs unshare -a 650696600cSBjoern A. Zeeb zfs unmount -a 660696600cSBjoern A. Zeeb} 670696600cSBjoern A. Zeeb 680696600cSBjoern A. Zeebzfs_stop() 690696600cSBjoern A. Zeeb{ 700696600cSBjoern A. Zeeb if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then 710696600cSBjoern A. Zeeb zfs_stop_jail 720696600cSBjoern A. Zeeb else 730696600cSBjoern A. Zeeb zfs_stop_main 740696600cSBjoern A. Zeeb fi 750696600cSBjoern A. Zeeb} 760696600cSBjoern A. Zeeb 770696600cSBjoern A. Zeebload_rc_config $name 78*f99f0ee1SAlexander Leidinger 79*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: mounting / config setting 80*f99f0ee1SAlexander Leidingerzfs_svcj="NO" 81*f99f0ee1SAlexander Leidinger 820696600cSBjoern A. Zeebrun_rc_command "$1" 83