From dd4c8c0d2b7d16573e9a0e049cc28e05fd78e7f5 Mon Sep 17 00:00:00 2001 From: Theo de Raadt Date: Tue, 27 Mar 2007 23:32:56 +0000 Subject: OK, I understand why jsg wanted the disk_unbusy() in wdretry(), and he was right. There is another path that ends up avoiding the disk_unbusy call I inserted.... tested by robert too --- sys/dev/ata/wd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/dev/ata/wd.c') diff --git a/sys/dev/ata/wd.c b/sys/dev/ata/wd.c index c19d27f4177..a903463c0b3 100644 --- a/sys/dev/ata/wd.c +++ b/sys/dev/ata/wd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wd.c,v 1.54 2007/03/25 18:05:49 deraadt Exp $ */ +/* $OpenBSD: wd.c,v 1.55 2007/03/27 23:32:55 deraadt Exp $ */ /* $NetBSD: wd.c,v 1.193 1999/02/28 17:15:27 explorer Exp $ */ /* @@ -609,7 +609,6 @@ 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; } @@ -639,6 +638,7 @@ wdrestart(void *v) DEBUG_XFERS); s = splbio(); + disk_unbusy(&wd->sc_dk, 0, (bp->b_flags & B_READ)); __wdstart(v, bp); splx(s); } -- cgit v1.2.3