* grub-core/disk/diskfilter.c (is_lv_readable): New argument "easily".
All users updated. If easily=1 require raid-5/-6 to be full. (is_node_readable): Likewise. (scan_devices): Scan incomplete but readable LVs at the end. (grub_diskfilter_memberlist): Pull missing devices. (insert_array): Skip scanning until device is complete or scan is done otherwise. * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Fix wrong check. * include/grub/diskfilter.h (grub_diskfilter_lv): New member scanned. * util/raid.c (grub_util_raid_getmembers): Handle "removed" disks.
This commit is contained in:
parent
aff05d45f9
commit
49de079bbe
5 changed files with 89 additions and 35 deletions
|
@ -177,17 +177,17 @@ grub_mdraid_detect (grub_disk_t disk,
|
|||
/* Spares aren't implemented. */
|
||||
return NULL;
|
||||
|
||||
if (grub_le_to_cpu32 (sb.dev_number)
|
||||
>= grub_le_to_cpu32 (sb.raid_disks))
|
||||
/* Spares aren't implemented. */
|
||||
return NULL;
|
||||
|
||||
if (grub_disk_read (disk, sector,
|
||||
(char *) &sb.dev_roles[sb.dev_number]
|
||||
- (char *) &sb,
|
||||
sizeof (role), &role))
|
||||
return NULL;
|
||||
|
||||
if (grub_le_to_cpu16 (role)
|
||||
>= grub_le_to_cpu32 (sb.raid_disks))
|
||||
/* Spares aren't implemented. */
|
||||
return NULL;
|
||||
|
||||
id->uuidlen = 0;
|
||||
id->id = grub_le_to_cpu16 (role);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue