svn commit: r308243 - in stable/11: etc/rc.d tools/build/mk
Andriy Gapon
avg at FreeBSD.org
Thu Nov 3 08:34:25 UTC 2016
Author: avg
Date: Thu Nov 3 08:34:24 2016
New Revision: 308243
URL: https://svnweb.freebsd.org/changeset/base/308243
Log:
MFC r307182,307191,307192: rc.d/zfsbe: new script designed for BE support
Added:
stable/11/etc/rc.d/zfsbe
- copied unchanged from r307182, head/etc/rc.d/zfsbe
Modified:
stable/11/etc/rc.d/Makefile
stable/11/etc/rc.d/zfs
stable/11/tools/build/mk/OptionalObsoleteFiles.inc
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/etc/rc.d/Makefile
==============================================================================
--- stable/11/etc/rc.d/Makefile Thu Nov 3 07:40:52 2016 (r308242)
+++ stable/11/etc/rc.d/Makefile Thu Nov 3 08:34:24 2016 (r308243)
@@ -317,6 +317,7 @@ FILES+= wpa_supplicant
.if ${MK_ZFS} != "no"
FILESGROUPS+= ZFS
ZFS+= zfs
+ZFS+= zfsbe
ZFS+= zfsd
ZFS+= zvol
ZFSPACKAGE= zfs
Modified: stable/11/etc/rc.d/zfs
==============================================================================
--- stable/11/etc/rc.d/zfs Thu Nov 3 07:40:52 2016 (r308242)
+++ stable/11/etc/rc.d/zfs Thu Nov 3 08:34:24 2016 (r308243)
@@ -4,7 +4,7 @@
#
# PROVIDE: zfs
-# REQUIRE: mountcritlocal
+# REQUIRE: zfsbe
# BEFORE: FILESYSTEMS var
. /etc/rc.subr
Copied: stable/11/etc/rc.d/zfsbe (from r307182, head/etc/rc.d/zfsbe)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/11/etc/rc.d/zfsbe Thu Nov 3 08:34:24 2016 (r308243, copy of r307182, head/etc/rc.d/zfsbe)
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: zfsbe
+# REQUIRE: mountcritlocal
+
+# Handle boot environment subordinate filesystems
+# that may have canmount property set to noauto.
+# For these filesystems mountpoint relative to /
+# must be the same as their dataset name relative
+# to BE root dataset.
+
+. /etc/rc.subr
+
+name="zfsbe"
+rcvar="zfs_enable"
+start_cmd="be_start"
+stop_cmd="be_stop"
+required_modules="zfs"
+
+mount_subordinate()
+{
+ local _be
+
+ _be=$1
+ zfs list -rH -o mountpoint,name,canmount,mounted -s mountpoint -t filesystem $_be | \
+ while read _mp _name _canmount _mounted ; do
+ # skip filesystems that must not be mounted
+ [ "$_canmount" = "off" ] && continue
+ # skip filesystems that are already mounted
+ [ "$_mounted" = "yes" ] && continue
+ case "$_mp" in
+ "none" | "legacy" | "/" | "/$_be")
+ # do nothing for filesystems with unset or legacy mountpoint
+ # or those that would be mounted over /
+ ;;
+ "/$_be/"*)
+ # filesystems with mountpoint relative to BE
+ mount -t zfs $_name ${_mp#/$_be}
+ ;;
+ *)
+ # filesystems with mountpoint elsewhere
+ zfs mount $_name
+ ;;
+ esac
+ done
+}
+
+be_start()
+{
+ if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then
+ :
+ else
+ mount -p | while read _dev _mp _type _rest; do
+ [ $_mp = "/" ] || continue
+ if [ $_type = "zfs" ] ; then
+ mount_subordinate $_dev
+ fi
+ break
+ done
+ fi
+}
+
+be_stop()
+{
+}
+
+load_rc_config $name
+run_rc_command "$1"
Modified: stable/11/tools/build/mk/OptionalObsoleteFiles.inc
==============================================================================
--- stable/11/tools/build/mk/OptionalObsoleteFiles.inc Thu Nov 3 07:40:52 2016 (r308242)
+++ stable/11/tools/build/mk/OptionalObsoleteFiles.inc Thu Nov 3 08:34:24 2016 (r308243)
@@ -1095,6 +1095,7 @@ OLD_FILES+=boot/gptzfsboot
OLD_FILES+=boot/zfsboot
OLD_FILES+=boot/zfsloader
OLD_FILES+=etc/rc.d/zfs
+OLD_FILES+=etc/rc.d/zfsbe
OLD_FILES+=etc/rc.d/zvol
OLD_FILES+=etc/devd/zfs.conf
OLD_FILES+=etc/periodic/daily/404.status-zfs
More information about the svn-src-all
mailing list