]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
efidisk: Return the determined root disk even if partition is unknown.
authorVladimir Serbinenko <phcoder@gmail.com>
Sat, 24 Jan 2015 18:53:13 +0000 (19:53 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sat, 24 Jan 2015 18:53:13 +0000 (19:53 +0100)
grub-core/disk/efi/efidisk.c

index 3b12c3499231f25215f3650073c8e84c76a4fa57..60a6d3c507edd50ff029338d022ec1647dbbf8b6 100644 (file)
@@ -803,7 +803,6 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle)
       && (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE
          || GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE))
     {
-      int is_cdrom = 0;
       struct grub_efidisk_get_device_name_ctx ctx;
       char *dev_name;
       grub_efi_device_path_t *dup_dp;
@@ -824,9 +823,6 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle)
                    || GRUB_EFI_DEVICE_PATH_SUBTYPE (dup_ldp) == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)))
            break;
 
-         if (GRUB_EFI_DEVICE_PATH_SUBTYPE (dup_ldp) == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE)
-           is_cdrom = 1;
-
          dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
          dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
          dup_ldp->length = sizeof (*dup_ldp);
@@ -861,10 +857,13 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle)
 
          if (! ctx.partition_name)
            {
+             /* No partition found. In most cases partition is embed in
+                the root path anyway, so this is not critical.
+                This happens only if partition is on partmap that GRUB
+                doesn't need to access root.
+              */
              grub_disk_close (parent);
-             if (is_cdrom)
-               return grub_strdup (device_name);
-             return 0;
+             return grub_strdup (device_name);
            }
 
          dev_name = grub_xasprintf ("%s,%s", parent->name,