diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2005-04-19 05:28:08 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2005-04-19 05:28:08 +0000 |
| commit | e30a3e750f270e56debc338f57c9231e7d9206d0 (patch) | |
| tree | 6eb25e948265edc91439df2a8ee5afbca9e247f6 /sys/dev/ata | |
| parent | ebccf1e3a6b11b97cbf5f813dd76636e892a9035 (diff) | |
Notes
Diffstat (limited to 'sys/dev/ata')
| -rw-r--r-- | sys/dev/ata/ata-raid.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/sys/dev/ata/ata-raid.c b/sys/dev/ata/ata-raid.c index 5418bd924be2..ecfa324ca281 100644 --- a/sys/dev/ata/ata-raid.c +++ b/sys/dev/ata/ata-raid.c @@ -443,22 +443,24 @@ ata_raid_strategy(struct bio *bp) if ((composite = ata_alloc_composite())) { if ((mirror = ata_alloc_request())) { - rdp->rebuild_lba = blk + chunk; - bcopy(request, mirror, sizeof(struct ata_request)); - mirror->this = this; - mirror->dev = rdp->disks[this].dev; - mtx_init(&composite->lock, - "ATA PseudoRAID mirror lock", - NULL, MTX_DEF); - composite->wr_needed |= (1 << drv); - composite->wr_needed |= (1 << this); - composite->request[drv] = request; - composite->request[this] = mirror; - request->composite = composite; - mirror->composite = composite; - ata_raid_send_request(mirror); - rdp->disks[this].last_lba = bp->bio_pblkno + chunk; - } + rdp->rebuild_lba = blk + chunk; + bcopy(request, mirror, + sizeof(struct ata_request)); + mirror->this = this; + mirror->dev = rdp->disks[this].dev; + mtx_init(&composite->lock, + "ATA PseudoRAID mirror lock", + NULL, MTX_DEF); + composite->wr_needed |= (1 << drv); + composite->wr_needed |= (1 << this); + composite->request[drv] = request; + composite->request[this] = mirror; + composite = composite; + mirror->composite = composite; + ata_raid_send_request(mirror); + rdp->disks[this].last_lba = + bp->bio_pblkno + chunk; + } else { ata_free_composite(composite); printf("DOH! ata_alloc_request failed!\n"); |
