+2010-10-08 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Correctly distinguish mdraid flavours.
+
+ * grub-core/disk/raid.c (grub_raid_getname) [GRUB_UTIL]: New function.
+ (insert_array): New argument raid.
+ * include/grub/disk.h (grub_disk_dev) [GRUB_UTIL]: New member raidname.
+ * include/grub/raid.h (grub_raid_array) [GRUB_UTIL]: New member driver.
+ * util/grub-probe.c (probe): PRint raidname instead of plainly "mdraid".
+
2010-10-09 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Fix incorrect
return list;
}
+
+static const char *
+grub_raid_getname (struct grub_disk *disk)
+{
+ struct grub_raid_array *array = disk->data;
+
+ return array->driver->name;
+}
#endif
static grub_err_t
static grub_err_t
insert_array (grub_disk_t disk, struct grub_raid_array *new_array,
- grub_disk_addr_t start_sector, const char *scanner_name)
+ grub_disk_addr_t start_sector, const char *scanner_name,
+ grub_raid_t raid __attribute__ ((unused)))
{
struct grub_raid_array *array = 0, *p;
*array = *new_array;
array->nr_devs = 0;
+#ifdef GRUB_UTIL
+ array->driver = raid;
+#endif
grub_memset (&array->device, 0, sizeof (array->device));
grub_memset (&array->start_sector, 0, sizeof (array->start_sector));
if ((disk->total_sectors != GRUB_ULONG_MAX) &&
(! grub_raid_list->detect (disk, &array, &start_sector)) &&
- (! insert_array (disk, &array, start_sector, grub_raid_list->name)))
+ (! insert_array (disk, &array, start_sector, grub_raid_list->name,
+ grub_raid_list)))
return 0;
/* This error usually means it's not raid, no need to display
.write = grub_raid_write,
#ifdef GRUB_UTIL
.memberlist = grub_raid_memberlist,
+ .raidname = grub_raid_getname,
#endif
.next = 0
};