]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
osdep/unix/getroot: Pass -P to zpool status
authorArsen Arsenović <arsen@aarsen.me>
Mon, 7 Nov 2022 23:22:36 +0000 (00:22 +0100)
committerDaniel Kiper <daniel.kiper@oracle.com>
Mon, 14 Nov 2022 16:50:17 +0000 (17:50 +0100)
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ć <arsen@aarsen.me>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/osdep/unix/getroot.c

index 7d2a29f318edb71103160cb1e348de71f388f21d..cde821eb9bfabb3cf0b4895f18bd609e0d0985c6 100644 (file)
@@ -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)