]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Change to disk->name being raw name. It makes less hidden issues
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 8 Sep 2010 19:22:41 +0000 (21:22 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 8 Sep 2010 19:22:41 +0000 (21:22 +0200)
grub-core/disk/efi/efidisk.c
grub-core/kern/device.c
grub-core/kern/disk.c
grub-core/kern/partition.c
grub-core/normal/completion.c

index cb6c388845bb4c9092464c4ca9e3f1d082220dfc..9b99620d919218daff0fd6c1cc1ceac4660f7aa2 100644 (file)
@@ -805,10 +805,11 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle)
          return 0;
        }
 
-      device_name = grub_xasprintf ("%s,%s%d", parent->name,
-                                   tpart->partmap->name,
-                                   tpart->number + 1);
-      grub_free (partition_name);
+      {
+       char *partition_name = grub_partition_get_name (tpart);
+       device_name = grub_xasprintf ("%s,%s", parent->name, partition_name);
+       grub_free (partition_name);
+      }
       grub_disk_close (parent);
 
       return device_name;
index 278ce9d72719cff7963b32245bc87b19c56bbbb2..6a004cbfb852abc841eb3eebc0314a5b89b48ff8 100644 (file)
@@ -136,7 +136,7 @@ grub_device_iterate (int (*hook) (const char *name))
   int iterate_partition (grub_disk_t disk, const grub_partition_t partition)
     {
       struct part_ent *p;
-
+      char *part_name;
 
       p = grub_malloc (sizeof (*p));
       if (!p)
@@ -144,8 +144,14 @@ grub_device_iterate (int (*hook) (const char *name))
          return 1;
        }
 
-      p->name = grub_xasprintf ("%s,%s%d", disk->name, partition->partmap->name,
-                               partition->number + 1);
+      part_name = grub_partition_get_name (partition);
+      if (!part_name)
+       {
+         grub_free (p);
+         return 1;
+       }
+      p->name = grub_xasprintf ("%s,%s", disk->name, part_name);
+      grub_free (part_name);
       if (!p->name)
        {
          grub_free (p);
index ccd5f200f9bb9a60858b9331a0ce2143860666e9..c9cffafc5708a8dd50b3453a21b276bf989a2d06 100644 (file)
@@ -248,10 +248,6 @@ grub_disk_open (const char *name)
   if (! disk)
     return 0;
 
-  disk->name = grub_strdup (name);
-  if (! disk->name)
-    goto fail;
-
   p = find_part_sep (name);
   if (p)
     {
@@ -263,7 +259,13 @@ grub_disk_open (const char *name)
 
       grub_memcpy (raw, name, len);
       raw[len] = '\0';
+      disk->name = grub_strdup (raw);
     }
+  else
+    disk->name = grub_strdup (name);
+  if (! disk->name)
+    goto fail;
+
 
   for (dev = grub_disk_dev_list; dev; dev = dev->next)
     {
index bd10774e8b323fa93b4a50d82b5de321d98235ed..a2f5dd722c081a4ae37749f74a0ac404ad6d6fdd 100644 (file)
@@ -188,13 +188,7 @@ grub_partition_iterate (struct grub_disk *disk,
       if (p.start != 0)
        {
          const struct grub_partition_map *partmap;
-         const char *name;
-         char *newname;
          dsk->partition = &p;
-         name = dsk->name;
-         dsk->name = newname = grub_xasprintf ("%s,%s%d", dsk->name,
-                                               p.partmap->name,
-                                               p.number + 1);
          FOR_PARTITION_MAPS(partmap)
          {
            grub_err_t err;
@@ -204,8 +198,6 @@ grub_partition_iterate (struct grub_disk *disk,
            if (ret)
              break;
          }
-         grub_free (newname);
-         dsk->name = name;
        }
       dsk->partition = p.parent;
       return ret;
index 6b5a5b7bbc86c5733e9269ac84b42c4c71540abd..9098dc6deffef9698bf5e9eefc607aabbfa06f10 100644 (file)
@@ -102,8 +102,14 @@ iterate_partition (grub_disk_t disk, const grub_partition_t p)
   const char *disk_name = disk->name;
   char *name;
   int ret;
+  char *part_name;
 
-  name = grub_xasprintf ("%s,%s%d", disk_name, p->partmap->name, p->number + 1);
+  part_name = grub_partition_get_name (p);
+  if (! part_name)
+    return 1;
+
+  name = grub_xasprintf ("%s,%s", disk_name, part_name);
+  grub_free (part_name);
 
   if (! name)
     return 1;