]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-02-08 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Fri, 8 Feb 2008 12:32:25 +0000 (12:32 +0000)
committerrobertmh <robertmh@localhost>
Fri, 8 Feb 2008 12:32:25 +0000 (12:32 +0000)
        * include/grub/raid.h (struct grub_raid_array): Change type of `device'
        to a grub_disk_t array.
        * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
        `device[x]'.
        (grub_raid_scan_device): Replace `device[x].name' accesses with
        `device[x]->name'.  Simplify initialization of `array->device[x]'.

ChangeLog
disk/raid.c
include/grub/raid.h

index 6f29be1b7d28c8f83d33f2f1fcae02f845c6bc97..1b1519e289d2b2aceb611cfa7ec3d401c48de0d3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-02-08  Robert Millan  <rmh@aybabtu.com>
+
+       * include/grub/raid.h (struct grub_raid_array): Change type of `device'
+       to a grub_disk_t array.
+       * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
+       `device[x]'.
+       (grub_raid_scan_device): Replace `device[x].name' accesses with
+       `device[x]->name'.  Simplify initialization of `array->device[x]'.
+
 2008-02-08  Robert Millan  <rmh@aybabtu.com>
 
        * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
index 217742990af3e2ca939d395aae2b9b97459d09dd..552124735eb1f112fee2e3000fe03a4455597a9b 100644 (file)
@@ -150,7 +150,7 @@ grub_raid_read (grub_disk_t disk, grub_disk_addr_t sector,
          {
            grub_uint32_t i;
 
-           err = grub_disk_read (array->device[disknr].disk, read_sector, 0,
+           err = grub_disk_read (array->device[disknr], read_sector, 0,
                                  read_size << GRUB_DISK_SECTOR_BITS, buf);
            if (err)
              break;
@@ -193,9 +193,9 @@ grub_raid_read (grub_disk_t disk, grub_disk_addr_t sector,
        
        for (i = 0; i < array->total_devs; i++)
          {
-           if (array->device[i].disk)
+           if (array->device[i])
              {
-               err = grub_disk_read (array->device[i].disk, sector, 0,
+               err = grub_disk_read (array->device[i], sector, 0,
                                      size << GRUB_DISK_SECTOR_BITS, buf);
 
                if (!err)
@@ -238,8 +238,8 @@ grub_raid_read (grub_disk_t disk, grub_disk_addr_t sector,
          {
            grub_uint32_t i;
 
-           if (array->device[disknr].disk)
-             err = grub_disk_read (array->device[disknr].disk, read_sector, 0,
+           if (array->device[disknr])
+             err = grub_disk_read (array->device[disknr], read_sector, 0,
                                    read_size << GRUB_DISK_SECTOR_BITS, buf);
 
            /* If an error occurs when we already have an degraded
@@ -247,7 +247,7 @@ grub_raid_read (grub_disk_t disk, grub_disk_addr_t sector,
            if (err && ((array->total_devs - 1) == array->nr_devs))
              break;
            
-           if (err || ! array->device[disknr].disk)
+           if (err || ! array->device[disknr])
              {
                /* Either an error occured or the disk is not
                   available.  We have to compute this block from the
@@ -264,7 +264,7 @@ grub_raid_read (grub_disk_t disk, grub_disk_addr_t sector,
 
                    if (j != (unsigned int) disknr)
                      {
-                       err = grub_disk_read (array->device[j].disk, read_sector,
+                       err = grub_disk_read (array->device[j], read_sector,
                                              0, buf_size, buf2);
                        if (err)
                          return err;
@@ -419,7 +419,7 @@ grub_raid_scan_device (const char *name)
          return 0;
        }
   
-      if (array->device[sb.this_disk.number].name != 0)
+      if (array->device[sb.this_disk.number]->name != 0)
        {
          /* We found multiple devices with the same number. Again,
             this shouldn't happen.*/
@@ -502,14 +502,10 @@ grub_raid_scan_device (const char *name)
     }
 
   /* Add the device to the array. */
-  array->device[sb.this_disk.number].name = grub_strdup (name);
-  array->device[sb.this_disk.number].disk = grub_disk_open (name);
+  array->device[sb.this_disk.number] = grub_disk_open (name);
   
-  if (! array->device[sb.this_disk.number].name
-      || ! array->device[sb.this_disk.number].disk)
+  if (! array->device[sb.this_disk.number])
     {
-      grub_free (array->device[sb.this_disk.number].name);
-
       /* Remove array from the list if we have just added it. */
       if (array->nr_devs == 0)
        {
index 0ecf5b3a4529d6ee15fa2fe90406c30f3ee54c74..8702b49f8e759f6bf82d885529ec5d9f58d3a078 100644 (file)
@@ -37,11 +37,7 @@ struct grub_raid_array
   char *name;              /* That will be "md<number>". */
   grub_uint64_t disk_size; /* Size of an individual disk, in 512 byte
                              sectors. */
-  struct
-  {
-    char *name;            /* Name of the device */
-    grub_disk_t disk;      /* The device itself. */
-  } device[32];            /* Array of total_devs devices. */          
+  grub_disk_t device[32];  /* Array of total_devs devices. */          
   struct grub_raid_array *next;
 };