From 06e77f2750d2210dda9bf8e3b4327d60c51a8894 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arsen=20Arsenovi=C4=87?= Date: Tue, 8 Nov 2022 00:22:36 +0100 Subject: [PATCH] osdep/unix/getroot: Pass -P to zpool status MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- grub-core/osdep/unix/getroot.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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) -- 2.47.3