summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1998-11-03 06:37:57 +0000
committergrog <grog@FreeBSD.org>1998-11-03 06:37:57 +0000
commit14ab1cb81ac331bcf1db66c602e6e02bef1725eb (patch)
tree229477ed45f4d89b98ddd491373dd0e71cda91a3 /sys/dev
parent194b462c0ccb16d6302f0a0fb1f5654df3fb3c5d (diff)
downloadFreeBSD-src-14ab1cb81ac331bcf1db66c602e6e02bef1725eb.zip
FreeBSD-src-14ab1cb81ac331bcf1db66c602e6e02bef1725eb.tar.gz
Take drive down if the disk driver tells us it's not there
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/vinum/vinuminterrupt.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/vinum/vinuminterrupt.c b/sys/dev/vinum/vinuminterrupt.c
index 1557cfe..086d6d1 100644
--- a/sys/dev/vinum/vinuminterrupt.c
+++ b/sys/dev/vinum/vinuminterrupt.c
@@ -35,7 +35,7 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: interrupt.c,v 1.1 1998/08/13 06:12:27 grog Exp grog $
+ * $Id: interrupt.c,v 1.2 1998/10/30 06:39:36 grog Exp grog $
*/
#define REALLYKERNEL
@@ -82,6 +82,10 @@ complete_rqe(struct buf *bp)
rq->error = EIO; /* no: catchall "I/O error" */
if (rq->error == EIO) /* I/O error, */
set_sd_state(rqe->sdno, sd_crashed, setstate_force | setstate_noupdate); /* take the subdisk down */
+ else if (rq->error = ENXIO) /* or "not configured" (drive down) */
+ set_drive_state(rqe->driveno, /* take the drive down */
+ drive_down,
+ setstate_force | setstate_noupdate);
}
/* Now update the statistics */
if (bp->b_flags & B_READ) { /* read operation */
OpenPOWER on IntegriCloud