1168410Spjd#!/bin/sh
2168410Spjd#
3168410Spjd# $FreeBSD: stable/10/etc/rc.d/zfs 308244 2016-11-03 08:34:37Z avg $
4168410Spjd#
5168410Spjd
6168410Spjd# PROVIDE: zfs
7308244Savg# REQUIRE: zfsbe
8301612Sngie# BEFORE: FILESYSTEMS var
9168410Spjd
10168410Spjd. /etc/rc.subr
11168410Spjd
12168410Spjdname="zfs"
13168410Spjdrcvar="zfs_enable"
14168410Spjdstart_cmd="zfs_start"
15168410Spjdstop_cmd="zfs_stop"
16168410Spjdrequired_modules="zfs"
17168410Spjd
18168956Spjdzfs_start_jail()
19168410Spjd{
20168956Spjd	if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then
21168956Spjd		zfs mount -a
22168956Spjd	fi
23168956Spjd}
24168956Spjd
25168956Spjdzfs_start_main()
26168956Spjd{
27253076Savg	zfs mount -va
28168410Spjd	zfs share -a
29168686Spjd	if [ ! -r /etc/zfs/exports ]; then
30168686Spjd		touch /etc/zfs/exports
31168686Spjd	fi
32168410Spjd}
33168410Spjd
34168956Spjdzfs_start()
35168410Spjd{
36168956Spjd	if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then
37168956Spjd		zfs_start_jail
38168956Spjd	else
39168956Spjd		zfs_start_main
40168956Spjd	fi
41168956Spjd}
42168956Spjd
43168956Spjdzfs_stop_jail()
44168956Spjd{
45168956Spjd	if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then
46168956Spjd		zfs unmount -a
47168956Spjd	fi
48168956Spjd}
49168956Spjd
50168956Spjdzfs_stop_main()
51168956Spjd{
52168410Spjd	zfs unshare -a
53168686Spjd	zfs unmount -a
54168410Spjd}
55168410Spjd
56168956Spjdzfs_stop()
57168956Spjd{
58168956Spjd	if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then
59168956Spjd		zfs_stop_jail
60168956Spjd	else
61168956Spjd		zfs_stop_main
62168956Spjd	fi
63168956Spjd}
64168956Spjd
65168410Spjdload_rc_config $name
66168410Spjdrun_rc_command "$1"
67