diff --git a/ChangeLog b/ChangeLog index 0b9b9b6aa..4433ffa5e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-01-10 Vladimir Serbinenko + + * 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 Don't use post-4G memory on EFI even if 64-bit since some non-compliant diff --git a/grub-core/fs/zfs/zfsinfo.c b/grub-core/fs/zfs/zfsinfo.c index 33065892a..5a7b5ec44 100644 --- a/grub-core/fs/zfs/zfsinfo.c +++ b/grub-core/fs/zfs/zfsinfo.c @@ -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