]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): If
authorColin Watson <cjwatson@ubuntu.com>
Tue, 29 Mar 2011 09:51:58 +0000 (10:51 +0100)
committerColin Watson <cjwatson@ubuntu.com>
Tue, 29 Mar 2011 09:51:58 +0000 (10:51 +0100)
real_sb->size is zero (e.g. RAID-0), get the disk size from
real_sb->data_size instead.
Fixes Ubuntu bug #743136.

ChangeLog
grub-core/disk/mdraid1x_linux.c

index 8d976d7703968c67f279d39345c3b08c60544f77..ab5182b8c77b58f7b6bacf1d0e7cf7fa02cd766e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-03-29  Colin Watson  <cjwatson@ubuntu.com>
+
+       * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): If
+       real_sb->size is zero (e.g. RAID-0), get the disk size from
+       real_sb->data_size instead.
+       Fixes Ubuntu bug #743136.
+
 2011-03-29  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/normal/misc.c (grub_normal_print_device_info): Use correct
index 296d1375bdcd5bdf23d94f811fc5eba2aecd6b16..1d08abf5b12992ef13de28eb0ef967b43da72925 100644 (file)
@@ -192,7 +192,10 @@ grub_mdraid_detect (grub_disk_t disk, struct grub_raid_array *array,
        array->level = grub_le_to_cpu32 (real_sb->level);
        array->layout = grub_le_to_cpu32 (real_sb->layout);
        array->total_devs = grub_le_to_cpu32 (real_sb->raid_disks);
-       array->disk_size = grub_le_to_cpu64 (real_sb->size);
+       if (real_sb->size)
+         array->disk_size = grub_le_to_cpu64 (real_sb->size);
+       else
+         array->disk_size = grub_le_to_cpu64 (real_sb->data_size);
        array->chunk_size = grub_le_to_cpu32 (real_sb->chunksize);
 
        if (grub_le_to_cpu32 (real_sb->dev_number) >=