The branch main has been updated by brd:

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

commit a320e9dd51e6e58715a1390f2e00790a94017dfb
Author:     Brad Davis <b...@freebsd.org>
AuthorDate: 2022-06-07 17:11:02 +0000
Commit:     Brad Davis <b...@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

Reply via email to