aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2002-03-03 16:36:19 +0000
committerSøren Schmidt <sos@FreeBSD.org>2002-03-03 16:36:19 +0000
commit0f0e725b18e0cf0b6889cfed1a328dbc7e8c113a (patch)
tree71ea9866a8cbb80e1f6e1f08365f6500ae250f29 /sys/dev/ata
parentd2fdf997f8e060467d2c2e5fa5cce49af16cf62e (diff)
downloadsrc-0f0e725b18e0cf0b6889cfed1a328dbc7e8c113a.tar.gz
src-0f0e725b18e0cf0b6889cfed1a328dbc7e8c113a.zip
Forgot this litte patch, scale the individual disk size from the
arrays total size depending on width of the array.
Notes
Notes: svn path=/head/; revision=91596
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/ata-raid.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-raid.c b/sys/dev/ata/ata-raid.c
index 7a0f63fedea1..2a3f89f2d3fd 100644
--- a/sys/dev/ata/ata-raid.c
+++ b/sys/dev/ata/ata-raid.c
@@ -591,7 +591,7 @@ ar_rebuild(struct ar_softc *rdp)
buffer = malloc(256 * DEV_BSIZE, M_AR, M_NOWAIT | M_ZERO);
/* now go copy entire disk(s) */
- while (rdp->lock_start < rdp->total_sectors) {
+ while (rdp->lock_start < (rdp->total_sectors / rdp->width)) {
for (disk = 0; disk < rdp->width; disk++) {
if (((rdp->disks[disk].flags & AR_DF_ONLINE) &&
(rdp->disks[disk + rdp->width].flags & AR_DF_ONLINE)) ||
@@ -615,8 +615,8 @@ ar_rebuild(struct ar_softc *rdp)
256 * DEV_BSIZE, buffer, AR_WRITE | AR_WAIT);
}
rdp->lock_start = rdp->lock_end;
- rdp->lock_end =
- rdp->lock_start + min(256, rdp->total_sectors - rdp->lock_end);
+ rdp->lock_end = rdp->lock_start +
+ min(256, (rdp->total_sectors / rdp->width) - rdp->lock_end);
wakeup(rdp);
}
free(buffer, M_AR);