summaryrefslogtreecommitdiffstats
path: root/sys/geom
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-03-29 22:34:37 +0000
committerphk <phk@FreeBSD.org>2003-03-29 22:34:37 +0000
commit15c9ea202dfc60166dd1b1c02f3dd55651def256 (patch)
treea524e30e43b52ef4c83a00f26f5832b30a65b45a /sys/geom
parent446c24ca7a6af68dfed415abc309c05b74ba2e28 (diff)
downloadFreeBSD-src-15c9ea202dfc60166dd1b1c02f3dd55651def256.zip
FreeBSD-src-15c9ea202dfc60166dd1b1c02f3dd55651def256.tar.gz
Fix a bug in the ENOMEM pacing code which probably made it panic systems
after a lot of ENOMEM errors.
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/geom_io.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/geom/geom_io.c b/sys/geom/geom_io.c
index d631670..488d409 100644
--- a/sys/geom/geom_io.c
+++ b/sys/geom/geom_io.c
@@ -348,6 +348,10 @@ g_io_schedule_down(struct thread *tp __unused)
continue;
}
g_bioq_unlock(&g_bio_run_down);
+ if (pace > 0) {
+ msleep(&error, NULL, PRIBIO, "g_down", hz/10);
+ pace--;
+ }
error = g_io_check(bp);
if (error) {
g_io_deliver(bp, error);
@@ -375,10 +379,6 @@ g_io_schedule_down(struct thread *tp __unused)
mtx_lock(&mymutex);
bp->bio_to->geom->start(bp);
mtx_unlock(&mymutex);
- if (pace) {
- pace--;
- break;
- }
}
}
OpenPOWER on IntegriCloud