else
{
if ((array->members[pos].device) &&
- (! grub_disk_read (array->members[pos].device, sector,
+ (! grub_disk_read (array->members[pos].device,
+ array->members[i].start_sector + sector,
0, size, buf)))
{
grub_raid_block_xor (pbuf, buf, size);
{
/* One bad device */
if ((array->members[p].device) &&
- (! grub_disk_read (array->members[p].device, sector, 0, size, buf)))
+ (! grub_disk_read (array->members[p].device,
+ array->members[i].start_sector + sector,
+ 0, size, buf)))
{
grub_raid_block_xor (buf, pbuf, size);
goto quit;
}
grub_errno = GRUB_ERR_NONE;
- if (grub_disk_read (array->members[q].device, sector, 0, size, buf))
+ if (grub_disk_read (array->members[q].device,
+ array->members[i].start_sector + sector, 0, size, buf))
goto quit;
grub_raid_block_xor (buf, qbuf, size);
goto quit;
}
- if (grub_disk_read (array->members[p].device, sector, 0, size, buf))
+ if (grub_disk_read (array->members[p].device,
+ array->members[i].start_sector + sector,
+ 0, size, buf))
goto quit;
grub_raid_block_xor (pbuf, buf, size);
- if (grub_disk_read (array->members[q].device, sector, 0, size, buf))
+ if (grub_disk_read (array->members[q].device,
+ array->members[i].start_sector + sector,
+ 0, size, buf))
goto quit;
grub_raid_block_xor (qbuf, buf, size);