]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/fs/zfs/zfsinfo.c (grub_cmd_zfs_bootfs): Use comma as
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 10 Jan 2011 22:56:11 +0000 (23:56 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 10 Jan 2011 22:56:11 +0000 (23:56 +0100)
separator and pass bootpath/devid even if only one of them is available.
Reported by: Seth Goldberg.

ChangeLog
grub-core/fs/zfs/zfsinfo.c

index 0b9b9b6aa220219cfcf716c7fc380989181195c5..4433ffa5e3f08e6305eb9c92b15550c2718198f4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-10  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/fs/zfs/zfsinfo.c (grub_cmd_zfs_bootfs): Use comma as
+       separator and pass bootpath/devid even if only one of them is available.
+       Reported by: Seth Goldberg.
+
 2011-01-10  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Don't use post-4G memory on EFI even if 64-bit since some non-compliant
index 33065892a347e93d3941c0adb8e52513cee7a4b9..5a7b5ec44530fbbc42207dc4c1325b9bafebcd21 100644 (file)
@@ -364,21 +364,14 @@ grub_cmd_zfs_bootfs (grub_command_t cmd __attribute__ ((unused)), int argc,
   grub_free (nv);
   grub_free (nvlist);
 
-  if (bootpath && devid)
-    {
-      bootfs = grub_xasprintf ("zfs-bootfs=%s/%llu bootpath=%s diskdevid=%s",
-                              poolname, (unsigned long long) mdnobj,
-                              bootpath, devid);
-      if (!bootfs)
-       return grub_errno;
-    }
-  else
-    {
-      bootfs = grub_xasprintf ("zfs-bootfs=%s/%llu",
-                              poolname, (unsigned long long) mdnobj);
-      if (!bootfs)
-       return grub_errno;
-    }
+  bootfs = grub_xasprintf ("zfs-bootfs=%s/%llu%s%s%s%s",
+                          poolname, (unsigned long long) mdnobj,
+                          bootpath ? ",bootpath=" : "",
+                          bootpath ? : "", 
+                          devid ? ",diskdevid=" : "",
+                          devid ? : "");
+  if (!bootfs)
+    return grub_errno;
   if (argc >= 2)
     grub_env_set (args[1], bootfs);
   else