Index: geom_io.c =================================================================== RCS file: /private/FreeBSD/src/sys/geom/geom_io.c,v retrieving revision 1.57 diff -u -p -r1.57 geom_io.c --- geom_io.c 11 Aug 2004 12:04:35 -0000 1.57 +++ geom_io.c 12 Aug 2004 20:02:50 -0000 @@ -306,6 +306,8 @@ g_io_deliver(struct bio *bp, int error) pace++; return; } + if (pace > 0) + pace -= (pace < 2 ? pace : 2); bp->bio_error = error; g_bioq_enqueue_tail(bp, &g_bio_run_up); wakeup(&g_wait_up); @@ -333,10 +335,8 @@ g_io_schedule_down(struct thread *tp __u continue; } g_bioq_unlock(&g_bio_run_down); - if (pace > 0) { + if (pace > 0) msleep(&error, NULL, PRIBIO, "g_down", hz/10); - pace--; - } error = g_io_check(bp); if (error) { g_io_deliver(bp, error);