diff options
author | Søren Schmidt <sos@FreeBSD.org> | 2002-03-03 16:36:19 +0000 |
---|---|---|
committer | Søren Schmidt <sos@FreeBSD.org> | 2002-03-03 16:36:19 +0000 |
commit | 0f0e725b18e0cf0b6889cfed1a328dbc7e8c113a (patch) | |
tree | 71ea9866a8cbb80e1f6e1f08365f6500ae250f29 /sys/dev/ata | |
parent | d2fdf997f8e060467d2c2e5fa5cce49af16cf62e (diff) | |
download | src-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.c | 6 |
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); |