git: 0c3ade2cf13d - main - nextboot: fix nextboot -k on ZFS

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Tue, 20 Feb 2024 03:54:25 UTC
The branch main has been updated by glebius:

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

commit 0c3ade2cf13df1ed5cd9db4081137ec90fcd19d0
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2024-02-20 03:51:22 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2024-02-20 03:51:22 +0000

    nextboot: fix nextboot -k on ZFS
    
    zfsbootcfg(1) expects pool name to operate on, not currently mounted
    filesystem name.
    
    Fixes:  fd6d47375a78fbf0737012b7cc11180291781e8b
---
 sbin/reboot/reboot.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sbin/reboot/reboot.c b/sbin/reboot/reboot.c
index 7ea4d50eaf74..ac3927cc2432 100644
--- a/sbin/reboot/reboot.c
+++ b/sbin/reboot/reboot.c
@@ -130,6 +130,11 @@ write_nextboot(const char *fn, const char *env, bool force)
 	}
 
 	if (zfs) {
+		char *slash;
+
+		if ((slash = strchr(sfs.f_mntfromname, '/')) == NULL)
+			E("Can't find ZFS pool name in %s", sfs.f_mntfromname);
+		*slash = '\0';
 		zfsbootcfg(sfs.f_mntfromname, force);
 	}