2009-04-01 Robert Millan <rmh@aybabtu.com>

Reapply fix from 2008-07-28 which was accidentally reverted; also
        perform the same fix to a similar check in same function.

        * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
        with the same number are found, just use issue a warning with
        grub_dprintf(), as this error has been reported to be non-fatal.
This commit is contained in:
robertmh 2009-04-01 01:26:58 +00:00
parent 0d818b7e5c
commit 9c3dd8544c
2 changed files with 14 additions and 8 deletions

View file

@ -1,3 +1,12 @@
2009-04-01 Robert Millan <rmh@aybabtu.com>
Reapply fix from 2008-07-28 which was accidentally reverted; also
perform the same fix to a similar check in same function.
* disk/raid.c (grub_raid_scan_device): Do not abort when two disks
with the same number are found, just use issue a warning with
grub_dprintf(), as this error has been reported to be non-fatal.
2009-03-31 Pavel Roskin <proski@gnu.org> 2009-03-31 Pavel Roskin <proski@gnu.org>
* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default

View file

@ -495,18 +495,15 @@ insert_array (grub_disk_t disk, struct grub_raid_array *new_array,
if (array->total_devs == array->nr_devs) if (array->total_devs == array->nr_devs)
/* We found more members of the array than the array /* We found more members of the array than the array
actually has according to its superblock. This shouldn't actually has according to its superblock. This shouldn't
happen normally, but what is the sanest things to do in such happen normally. */
a case? */ grub_dprintf ("raid", "array->nr_devs > array->total_devs (%d)?!?",
return grub_error (GRUB_ERR_BAD_NUMBER, array->total_devs);
"array->nr_devs > array->total_devs (%d)?!?",
array->total_devs);
if (array->device[new_array->index] != NULL) if (array->device[new_array->index] != NULL)
/* We found multiple devices with the same number. Again, /* We found multiple devices with the same number. Again,
this shouldn't happen.*/ this shouldn't happen.*/
return grub_error (GRUB_ERR_BAD_NUMBER, grub_dprintf ("raid", "Found two disks with the number %d?!?",
"Found two disks with the number %d?!?", new_array->number);
new_array->number);
if (new_array->disk_size < array->disk_size) if (new_array->disk_size < array->disk_size)
array->disk_size = new_array->disk_size; array->disk_size = new_array->disk_size;