summaryrefslogtreecommitdiff
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2007-03-25 18:05:50 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2007-03-25 18:05:50 +0000
commitb76502f11a09a21f45aa8586d08c8071373ee193 (patch)
tree82f69214dbe8612014e28172c153362ffcff9b5b /sys/dev/ata
parent1a2e329031125a3273df53f12934482de4291f59 (diff)
wdc retries (including after suspends) caused a disk to remain busy when
it should not; ok dlg problem spotted using zaurus soft-drive-led diff which is pending i think i convinced jsg now that this fix is better than putting it in wdrestart
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/wd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ata/wd.c b/sys/dev/ata/wd.c
index 75814b4b3b4..c19d27f4177 100644
--- a/sys/dev/ata/wd.c
+++ b/sys/dev/ata/wd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: wd.c,v 1.53 2007/02/15 00:53:26 krw Exp $ */
+/* $OpenBSD: wd.c,v 1.54 2007/03/25 18:05:49 deraadt Exp $ */
/* $NetBSD: wd.c,v 1.193 1999/02/28 17:15:27 explorer Exp $ */
/*
@@ -609,6 +609,7 @@ retry:
wd->sc_wdc_bio.blkdone, wd->sc_dk.dk_label);
if (wd->retries++ < WDIORETRIES) {
printf(", retrying\n");
+ disk_unbusy(&wd->sc_dk, 0, (bp->b_flags & B_READ));
timeout_add(&wd->sc_restart_timeout, RECOVERYTIME);
return;
}