From: Arsen Arsenović Date: Mon, 7 Nov 2022 23:22:36 +0000 (+0100) Subject: osdep/unix/getroot: Pass -P to zpool status X-Git-Tag: grub-2.12-rc1~227 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06e77f2750d2210dda9bf8e3b4327d60c51a8894;p=thirdparty%2Fgrub.git osdep/unix/getroot: Pass -P to zpool status zpool status by default prints basenames of VDEVs, which means that GRUB would have to go around guessing to see whether a VDEV exists. Instead, it'd be more robust to simply tell zpool to give us full paths to VDEVs via -P. Signed-off-by: Arsen Arsenović Reviewed-by: Daniel Kiper --- diff --git a/grub-core/osdep/unix/getroot.c b/grub-core/osdep/unix/getroot.c index 7d2a29f31..cde821eb9 100644 --- a/grub-core/osdep/unix/getroot.c +++ b/grub-core/osdep/unix/getroot.c @@ -229,14 +229,15 @@ grub_util_find_root_devices_from_poolname (char *poolname) char name[PATH_MAX + 1], state[257], readlen[257], writelen[257]; char cksum[257], notes[257]; unsigned int dummy; - const char *argv[4]; + const char *argv[5]; pid_t pid; int fd; argv[0] = "zpool"; argv[1] = "status"; - argv[2] = poolname; - argv[3] = NULL; + argv[2] = "-P"; + argv[3] = poolname; + argv[4] = NULL; pid = grub_util_exec_pipe (argv, &fd); if (!pid)