diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2007-03-25 18:05:50 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2007-03-25 18:05:50 +0000 |
commit | b76502f11a09a21f45aa8586d08c8071373ee193 (patch) | |
tree | 82f69214dbe8612014e28172c153362ffcff9b5b /sys/dev | |
parent | 1a2e329031125a3273df53f12934482de4291f59 (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')
-rw-r--r-- | sys/dev/ata/wd.c | 3 |
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; } |