summaryrefslogtreecommitdiff
path: root/sys/scsi/sd.c
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2010-09-10 04:46:25 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2010-09-10 04:46:25 +0000
commit603bf4f04a941db10ee48b2f222bfd83ff76cffa (patch)
tree43cc4e890d682595c70235192528850bf5884f28 /sys/scsi/sd.c
parenta77acf5b138d45ec9755987e30f29577d145e0b6 (diff)
scsi_xsh_del the io handler in deactivate to prevent it from being run on
a device thats now gone, or from being on the list of pending io when the device is actually detached. found and fix tested by jakemsr@ "go for it" jakemsr@
Diffstat (limited to 'sys/scsi/sd.c')
-rw-r--r--sys/scsi/sd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c
index fe08b311008..0513ca6a141 100644
--- a/sys/scsi/sd.c
+++ b/sys/scsi/sd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sd.c,v 1.211 2010/09/08 15:16:22 jsing Exp $ */
+/* $OpenBSD: sd.c,v 1.212 2010/09/10 04:46:24 dlg Exp $ */
/* $NetBSD: sd.c,v 1.111 1997/04/02 02:29:41 mycroft Exp $ */
/*-
@@ -291,6 +291,7 @@ sdactivate(struct device *self, int act)
case DVACT_DEACTIVATE:
sc->flags |= SDF_DYING;
bufq_drain(&sc->sc_bufq);
+ scsi_xsh_del(&sc->sc_xsh);
break;
}
return (rv);