Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Aug 2020 13:13:58 +0000 (UTC)
From:      Cy Schubert <cy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r364817 - head/libexec/rc/rc.d
Message-ID:  <202008261313.07QDDwRm040119@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cy
Date: Wed Aug 26 13:13:57 2020
New Revision: 364817
URL: https://svnweb.freebsd.org/changeset/base/364817

Log:
  As of r364746 (OpenZFS import) existing ZPOOLs are not imported
  prior to zvol and mountcritlocal resulting in ZVOLs (swap and
  virtual machine UFS filesystems) being unavailable, leading to
  boot failures.
  
  We move the zpool import from zfs to a new zpool script, with the
  -N option to avoid mounting datasets while making the ZPOOL's
  datasets available for "legacy" mount (mountpoint=legacy) and ZVOLs
  available for subsequent use for swap (in the zvol rc sript) or
  for UFS or other filesystems in fstab(5), mounted by mountcritlocal.
  
  Reviewed by:		freqlabs (previous version)
  Differential Revision:	https://reviews.freebsd.org/D26185

Added:
  head/libexec/rc/rc.d/zpool   (contents, props changed)
Modified:
  head/libexec/rc/rc.d/Makefile
  head/libexec/rc/rc.d/mountcritlocal
  head/libexec/rc/rc.d/zfs
  head/libexec/rc/rc.d/zvol

Modified: head/libexec/rc/rc.d/Makefile
==============================================================================
--- head/libexec/rc/rc.d/Makefile	Wed Aug 26 12:54:18 2020	(r364816)
+++ head/libexec/rc/rc.d/Makefile	Wed Aug 26 13:13:57 2020	(r364817)
@@ -318,6 +318,7 @@ CONFGROUPS+=	ZFS
 ZFS+=		zfs
 ZFS+=		zfsbe
 ZFS+=		zfsd
+ZFS+=		zpool
 ZFS+=		zvol
 .endif
 

Modified: head/libexec/rc/rc.d/mountcritlocal
==============================================================================
--- head/libexec/rc/rc.d/mountcritlocal	Wed Aug 26 12:54:18 2020	(r364816)
+++ head/libexec/rc/rc.d/mountcritlocal	Wed Aug 26 13:13:57 2020	(r364817)
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: mountcritlocal
-# REQUIRE: root hostid_save mdconfig
+# REQUIRE: root hostid_save mdconfig zvol
 # KEYWORD: nojail shutdown
 
 . /etc/rc.subr

Modified: head/libexec/rc/rc.d/zfs
==============================================================================
--- head/libexec/rc/rc.d/zfs	Wed Aug 26 12:54:18 2020	(r364816)
+++ head/libexec/rc/rc.d/zfs	Wed Aug 26 13:13:57 2020	(r364817)
@@ -25,13 +25,6 @@ zfs_start_jail()
 
 zfs_start_main()
 {
-	local cachefile
-
-	for cachefile in /boot/zfs/zpool.cache /etc/zfs/zpool.cache; do
-		if [ -r $cachefile ]; then
-			zpool import -c $cachefile -a
-		fi
-	done
 	zfs mount -va
 	zfs share -a
 	if [ ! -r /etc/zfs/exports ]; then

Added: head/libexec/rc/rc.d/zpool
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/libexec/rc/rc.d/zpool	Wed Aug 26 13:13:57 2020	(r364817)
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: zpool
+# REQUIRE: hostid
+# BEFORE: zvol mountcritlocal
+# KEYWORD: nojail
+
+. /etc/rc.subr
+
+name="zpool"
+desc="Import ZPOOLs"
+rcvar="zfs_enable"
+start_cmd="zpool_start"
+required_modules="zfs"
+
+zpool_start()
+{
+	local cachefile
+
+	for cachefile in /boot/zfs/zpool.cache /etc/zfs/zpool.cache; do
+		if [ -r $cachefile ]; then
+			zpool import -c $cachefile -a -N
+		fi
+	done
+}
+
+load_rc_config $name
+run_rc_command "$1"

Modified: head/libexec/rc/rc.d/zvol
==============================================================================
--- head/libexec/rc/rc.d/zvol	Wed Aug 26 12:54:18 2020	(r364816)
+++ head/libexec/rc/rc.d/zvol	Wed Aug 26 13:13:57 2020	(r364817)
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: zvol
-# REQUIRE: hostid
+# REQUIRE: zpool
 # BEFORE: dumpon
 # KEYWORD: nojail
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008261313.07QDDwRm040119>