diff --git a/ChangeLog b/ChangeLog index 0d1cc9dac..cfd60707d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-04-01 Robert Millan + + 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 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default diff --git a/disk/raid.c b/disk/raid.c index 62cbcb5ba..4d6422236 100644 --- a/disk/raid.c +++ b/disk/raid.c @@ -495,18 +495,15 @@ insert_array (grub_disk_t disk, struct grub_raid_array *new_array, if (array->total_devs == array->nr_devs) /* We found more members of the array than the array actually has according to its superblock. This shouldn't - happen normally, but what is the sanest things to do in such - a case? */ - return grub_error (GRUB_ERR_BAD_NUMBER, - "array->nr_devs > array->total_devs (%d)?!?", - array->total_devs); + happen normally. */ + grub_dprintf ("raid", "array->nr_devs > array->total_devs (%d)?!?", + array->total_devs); if (array->device[new_array->index] != NULL) /* We found multiple devices with the same number. Again, this shouldn't happen.*/ - return grub_error (GRUB_ERR_BAD_NUMBER, - "Found two disks with the number %d?!?", - new_array->number); + grub_dprintf ("raid", "Found two disks with the number %d?!?", + new_array->number); if (new_array->disk_size < array->disk_size) array->disk_size = new_array->disk_size;