Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2022 15:21:49 GMT
From:      Brad Davis <brd@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: a320e9dd51e6 - main - bsdinstall: improve zfsboots ability to handle datasets under a BE
Message-ID:  <202206231521.25NFLn7u080871@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by brd:

URL: https://cgit.FreeBSD.org/src/commit/?id=a320e9dd51e6e58715a1390f2e00790a94017dfb

commit a320e9dd51e6e58715a1390f2e00790a94017dfb
Author:     Brad Davis <brd@FreeBSD.org>
AuthorDate: 2022-06-07 17:11:02 +0000
Commit:     Brad Davis <brd@FreeBSD.org>
CommitDate: 2022-06-23 15:21:08 +0000

    bsdinstall: improve zfsboots ability to handle datasets under a BE
    
    Currently we only set canmount=noauto on the root of the BE, this
    change makes it so we set it on all datasets under the BE as well.
    
    Reviewed by:    allanjude
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    Differential Revision: https://reviews.freebsd.org/D35422
---
 usr.sbin/bsdinstall/scripts/zfsboot | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/usr.sbin/bsdinstall/scripts/zfsboot b/usr.sbin/bsdinstall/scripts/zfsboot
index dc9d35feaa78..1e771710cb7c 100755
--- a/usr.sbin/bsdinstall/scripts/zfsboot
+++ b/usr.sbin/bsdinstall/scripts/zfsboot
@@ -1473,9 +1473,18 @@ zfs_create_boot()
 	# Set canmount=noauto so that the default Boot Environment (BE) does
 	# not get mounted if a different BE is selected from the beastie menu
 	#
-	f_dprintf "$funcname: Set canmount=noauto for the root of the pool..."
-	f_eval_catch $funcname zfs "$ZFS_SET" "canmount=noauto" \
-		"$zroot_name/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME"
+	f_dprintf "$funcname: Set canmount=noauto for any datasets under the BE..."
+	echo "$ZFSBOOT_DATASETS" | while read dataset options; do
+		# Skip blank lines and comments
+		case "$dataset" in "#"*|"") continue; esac
+		options="${options%%#*}"
+		#
+		case "$dataset" in "/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME"*)
+			f_eval_catch $funcname zfs "$ZFS_SET" "canmount=noauto" \
+				"$zroot_name$dataset" || return $FAILURE ;;
+		*) continue ;;
+		esac
+	done
 
 	# Last, but not least... required lines for rc.conf(5)/loader.conf(5)
 	# NOTE: We later concatenate these into their destination



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