From 96dbe64813217b78484247ab7e1611794e8ad4de Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 7 Jun 2013 15:41:10 +0200 Subject: [PATCH] * grub-core/disk/diskfilter.c (insert_array): Fix order to discover ambigouos RAID before discovering RAIDs on top of it. Reported by: bodom. --- ChangeLog | 6 ++++++ grub-core/disk/diskfilter.c | 17 +++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index fa6c165d7..7a8391789 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2013-06-07 Vladimir Serbinenko + + * grub-core/disk/diskfilter.c (insert_array): Fix order to discover + ambigouos RAID before discovering RAIDs on top of it. + Reported by: bodom. + 2013-06-07 Vladimir Serbinenko Fix typo (failback vs fallback). diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c index c4eb97eb7..c8d267a6b 100644 --- a/grub-core/disk/diskfilter.c +++ b/grub-core/disk/diskfilter.c @@ -1045,10 +1045,14 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, { struct grub_diskfilter_pv *pv; - grub_dprintf ("diskfilter", "Inserting %s into %s (%s)\n", disk->name, + grub_dprintf ("diskfilter", "Inserting %s (+%lld,%lld) into %s (%s)\n", disk->name, + (unsigned long long) grub_partition_get_start (disk->partition), + (unsigned long long) grub_disk_get_size (disk), array->name, diskfilter->name); #ifdef GRUB_UTIL - grub_util_info ("Inserting %s into %s (%s)\n", disk->name, + grub_util_info ("Inserting %s (+%lld,%lld) into %s (%s)\n", disk->name, + (unsigned long long) grub_partition_get_start (disk->partition), + (unsigned long long) grub_disk_get_size (disk), array->name, diskfilter->name); array->driver = diskfilter; #endif @@ -1092,14 +1096,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, /* Add the device to the array. */ for (lv = array->lvs; lv; lv = lv->next) if (!lv->became_readable_at && lv->fullname && is_lv_readable (lv, 0)) - { - lv->became_readable_at = ++inscnt; - if (is_lv_readable (lv, 1)) - { - scan_disk (lv->fullname, 1); - lv->scanned = 1; - } - } + lv->became_readable_at = ++inscnt; break; }