head	1.10;
access;
symbols
	RELENG_8_4:1.9.0.2
	RELENG_9_1_0_RELEASE:1.8.4.1.4.2
	RELENG_9_1:1.8.4.1.0.4
	RELENG_9_1_BP:1.8.4.1
	RELENG_8_3_0_RELEASE:1.8.2.1.8.1
	RELENG_8_3:1.8.2.1.0.8
	RELENG_8_3_BP:1.8.2.1
	RELENG_9_0_0_RELEASE:1.8.4.1.2.1
	RELENG_9_0:1.8.4.1.0.2
	RELENG_9_0_BP:1.8.4.1
	RELENG_9:1.8.0.4
	RELENG_9_BP:1.8
	RELENG_7_4_0_RELEASE:1.5.12.1
	RELENG_8_2_0_RELEASE:1.8.2.1.6.1
	RELENG_7_4:1.5.0.12
	RELENG_7_4_BP:1.5
	RELENG_8_2:1.8.2.1.0.6
	RELENG_8_2_BP:1.8.2.1
	RELENG_8_1_0_RELEASE:1.8.2.1.4.1
	RELENG_8_1:1.8.2.1.0.4
	RELENG_8_1_BP:1.8.2.1
	RELENG_7_3_0_RELEASE:1.5.10.1
	RELENG_7_3:1.5.0.10
	RELENG_7_3_BP:1.5
	RELENG_8_0_0_RELEASE:1.8.2.1.2.1
	RELENG_8_0:1.8.2.1.0.2
	RELENG_8_0_BP:1.8.2.1
	RELENG_8:1.8.0.2
	RELENG_8_BP:1.8
	RELENG_7_2_0_RELEASE:1.5.8.1
	RELENG_7_2:1.5.0.8
	RELENG_7_2_BP:1.5
	RELENG_7_1_0_RELEASE:1.5.6.1
	RELENG_7_1:1.5.0.6
	RELENG_7_1_BP:1.5
	RELENG_7_0_0_RELEASE:1.5
	RELENG_7_0:1.5.0.4
	RELENG_7_0_BP:1.5
	RELENG_7:1.5.0.2
	RELENG_7_BP:1.5;
locks; strict;
comment	@# @;


1.10
date	2013.07.10.00.41.11;	author svnexp;	state Exp;
branches;
next	1.9;

1.9
date	2012.11.17.01.49.06;	author svnexp;	state Exp;
branches
	1.9.2.1;
next	1.8;

1.8
date	2009.07.29.05.23.52;	author pjd;	state Exp;
branches
	1.8.2.1
	1.8.4.1;
next	1.7;

1.7
date	2008.04.02.19.29.16;	author dougb;	state Exp;
branches;
next	1.6;

1.6
date	2008.03.19.14.44.55;	author pjd;	state Exp;
branches;
next	1.5;

1.5
date	2007.04.22.20.55.08;	author pjd;	state Exp;
branches
	1.5.2.1
	1.5.6.1
	1.5.8.1
	1.5.10.1
	1.5.12.1;
next	1.4;

1.4
date	2007.04.15.18.07.14;	author pjd;	state Exp;
branches;
next	1.3;

1.3
date	2007.04.13.18.46.35;	author des;	state Exp;
branches;
next	1.2;

1.2
date	2007.04.13.11.02.06;	author pjd;	state Exp;
branches;
next	1.1;

1.1
date	2007.04.06.02.27.02;	author pjd;	state Exp;
branches;
next	;

1.9.2.1
date	2012.11.17.01.49.06;	author svnexp;	state dead;
branches;
next	1.9.2.2;

1.9.2.2
date	2013.03.28.13.02.44;	author svnexp;	state Exp;
branches;
next	;

1.8.2.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.8.2.1.2.1
	1.8.2.1.4.1
	1.8.2.1.6.1
	1.8.2.1.8.1;
next	1.8.2.2;

1.8.2.2
date	2012.11.17.10.35.57;	author svnexp;	state Exp;
branches;
next	1.8.2.3;

1.8.2.3
date	2013.08.07.08.21.40;	author svnexp;	state Exp;
branches;
next	;

1.8.2.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.8.2.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.8.2.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.8.2.1.8.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.8.2.1.8.2;

1.8.2.1.8.2
date	2012.11.17.08.24.38;	author svnexp;	state Exp;
branches;
next	;

1.8.4.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.8.4.1.2.1
	1.8.4.1.4.1;
next	1.8.4.2;

1.8.4.2
date	2012.11.17.11.36.11;	author svnexp;	state Exp;
branches;
next	1.8.4.3;

1.8.4.3
date	2013.08.07.08.02.31;	author svnexp;	state Exp;
branches;
next	;

1.8.4.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.8.4.1.2.2;

1.8.4.1.2.2
date	2012.11.17.08.36.11;	author svnexp;	state Exp;
branches;
next	;

1.8.4.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.8.4.1.4.2;

1.8.4.1.4.2
date	2012.11.17.08.47.01;	author svnexp;	state Exp;
branches;
next	;

1.5.2.1
date	2012.11.17.08.01.23;	author svnexp;	state Exp;
branches;
next	;

1.5.6.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.5.8.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.5.10.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.5.12.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.5.12.2;

1.5.12.2
date	2012.11.17.08.16.37;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.10
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/253076
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@#!/bin/sh
#
# $FreeBSD: head/etc/rc.d/zfs 253076 2013-07-09 08:59:39Z avg $
#

# PROVIDE: zfs
# REQUIRE: mountcritlocal

. /etc/rc.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 mount -va
	zfs share -a
	if [ ! -r /etc/zfs/exports ]; then
		touch /etc/zfs/exports
	fi
}

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()
{
	zfs unshare -a
	zfs unmount -a
}

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"
@


1.9
log
@Switching exporter and resync
@
text
@d3 1
a3 1
# $FreeBSD: head/etc/rc.d/zfs 195938 2009-07-29 05:23:52Z pjd $
d26 1
a26 1
	zfs mount -a
@


1.9.2.1
log
@file zfs was added on branch RELENG_8_4 on 2013-03-28 13:02:44 +0000
@
text
@d1 65
@


1.9.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 65
#!/bin/sh
#
# $FreeBSD: releng/8.4/etc/rc.d/zfs 195938 2009-07-29 05:23:52Z pjd $
#

# PROVIDE: zfs
# REQUIRE: mountcritlocal

. /etc/rc.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 mount -a
	zfs share -a
	if [ ! -r /etc/zfs/exports ]; then
		touch /etc/zfs/exports
	fi
}

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()
{
	zfs unshare -a
	zfs unmount -a
}

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"
@


1.8
log
@SVN rev 195938 on 2009-07-29 05:23:52Z by pjd

Currently there is a problem with fscking UFS file systems created on
top of ZVOLs. The problem is that rc.d/fsck runs before rc.d/zfs. The
latter makes ZVOLs to appear in /dev/. In such case rc.d/fsck cannot
find devfs entry and aborts. We cannot simply move rc.d/zfs before
rc.d/fsck, because we first want kern.hostid to be configured (by
rc.d/hostid). If we won't wait (hostid will be 0) we can reuse disks
which are in use by different systems (eg. in SAN/NAS environment).
We also cannot move rc.d/hostid before rc.d/fsck, because rc.d/hostid on
first system start stores generated kern.hostuuid in /etc/hostid file,
so it needs root file system to be mounted read-write.

The fix is to split rc.d/hostid so that rc.d/hostid (which will now run
before rc.d/fsck) only generates hostid and sets up sysctls, but doesn't
touch root file system and rc.d/hostid_save (which is run after
rc.d/root) and only creates /etc/hostid file.

With that in place, we can move ZVOL initialization to dedicated
rc.d/zvol script which runs before rc.d/fsck.

PR:		conf/120194
Reported by:	James Snow <snow@@teardrop.org>
Reviewed by:	brooks
Approved by:	re (kib)
MFC after:	2 weeks
@
text
@d3 1
a3 1
# $FreeBSD$
@


1.8.4.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.8.4.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
# $FreeBSD: stable/9/etc/rc.d/zfs 195938 2009-07-29 05:23:52Z pjd $
@


1.8.4.3
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/254033
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d3 1
a3 1
# $FreeBSD: stable/9/etc/rc.d/zfs 254033 2013-08-07 07:27:49Z avg $
d26 1
a26 1
	zfs mount -va
@


1.8.4.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.8.4.1.4.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.1/etc/rc.d/zfs 195938 2009-07-29 05:23:52Z pjd $
@


1.8.4.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.8.4.1.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.0/etc/rc.d/zfs 195938 2009-07-29 05:23:52Z pjd $
@


1.8.2.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.8.2.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
# $FreeBSD: stable/8/etc/rc.d/zfs 195938 2009-07-29 05:23:52Z pjd $
@


1.8.2.3
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/254034
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d3 1
a3 1
# $FreeBSD: stable/8/etc/rc.d/zfs 254034 2013-08-07 07:28:00Z avg $
d26 1
a26 1
	zfs mount -va
@


1.8.2.1.8.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.8.2.1.8.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/8.3/etc/rc.d/zfs 195938 2009-07-29 05:23:52Z pjd $
@


1.8.2.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.8.2.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.8.2.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.7
log
@Back out revision 1.6, the addition of "BEFORE: mountcritremote".

mountcritremote REQUIREs FILESYSTEMS, and that script REQUIREs zfs,
so this change is a noop. By removing it we make life a little easier
both for rcorder(8) and for debugging down the road.

Approved by:	2 weeks of silence from pjd
@
text
@a25 1
	zfs volinit
a30 9
	# 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
a50 9
	# 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
a52 1
	zfs volfini
@


1.6
log
@Be sure to run rc.d/zfs before mountcritremote. This way we can for example
configure devfs rules in /etc/devfs.conf for ZVOLs.

Submitted by:	Yarema <yds@@CoolRat.org>
@
text
@a7 1
# BEFORE:  mountcritremote
@


1.5
log
@When zfs dataset has jailed=on property, it won't be mounted with
'zfs mount -a' from the main system - this is by design, as mountpoint
may be set to dangerous value. This all means, that such file system
has to be mounted from within a jail. To make it easier, reorganize
rc.d/zfs script so it can be used from within a jail.
@
text
@d8 1
@


1.5.2.1
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: stable/7/etc/rc.d/zfs 220110 2011-03-28 19:29:30Z dougb $
@


1.5.12.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.5.12.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/7.4/etc/rc.d/zfs 168956 2007-04-22 20:55:08Z pjd $
@


1.5.10.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.5.8.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.5.6.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.4
log
@When org.freebsd:swap property is set to 'on' on a ZVOL, use is as a swap
device.

Discussed with:	des
@
text
@a7 1
# KEYWORD: nojail
d17 8
a24 1
zfs_start()
d43 17
a59 1
zfs_stop()
d75 9
@


1.3
log
@Remove the shutdown keyword.  It just adds noise to the shutdown process.
@
text
@d26 9
d39 9
@


1.2
log
@- Create an empty /etc/zfs/exports file when zfs_enable="YES" and we don't
  NFS-share anything. This way we can safely start mountd with
  /etc/zfs/exports and mountd won't complain.

  Pointed out by:	ceri

- Move 'zfs volinit' before 'zfs mount -a' and 'zfs volfini' after
  'zfs unmount -a'.
@
text
@d8 1
a8 1
# KEYWORD: nojail shutdown
@


1.1
log
@- Add ZFS startup script.

Submitted by:	des

- When starting mountd(8) and ZFS is enabled, add /etc/zfs/exports file.
- Update rc.conf(5).
@
text
@d20 1
a21 1
	zfs volinit
d23 3
d31 1
a32 1
	zfs unmount -a
@

