summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>2000-03-12 05:05:41 +0000
committergrog <grog@FreeBSD.org>2000-03-12 05:05:41 +0000
commit2b89a04ac4cc68f1305ae2c5649de2359d51e48f (patch)
tree3ada53a7f5fc1c9bf410f0e9844ba751cf1e3c0c
parentf5f929f515b3732dd41bc954df25e9152260d077 (diff)
downloadFreeBSD-src-2b89a04ac4cc68f1305ae2c5649de2359d51e48f.zip
FreeBSD-src-2b89a04ac4cc68f1305ae2c5649de2359d51e48f.tar.gz
sdio: If sd I/O fails because of an I/O error, set the sd state
correctly. Reported-by: phk Approved-by: jkh
-rw-r--r--sys/dev/vinum/vinumrequest.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/vinum/vinumrequest.c b/sys/dev/vinum/vinumrequest.c
index 469d9cae..da7bff4 100644
--- a/sys/dev/vinum/vinumrequest.c
+++ b/sys/dev/vinum/vinumrequest.c
@@ -891,10 +891,10 @@ sdio(struct buf *bp)
if (drive->state != drive_up) {
if (sd->state >= sd_crashed) {
- if (bp->b_flags & B_WRITE) /* writing, */
- set_sd_state(sd->sdno, sd_stale, setstate_force);
- else
+ if (bp->b_flags & B_READ) /* reading, */
set_sd_state(sd->sdno, sd_crashed, setstate_force);
+ else
+ set_sd_state(sd->sdno, sd_stale, setstate_force);
}
bp->b_flags |= B_ERROR;
bp->b_error = EIO;
OpenPOWER on IntegriCloud