diff options
author | phk <phk@FreeBSD.org> | 2003-03-29 22:34:37 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-03-29 22:34:37 +0000 |
commit | 15c9ea202dfc60166dd1b1c02f3dd55651def256 (patch) | |
tree | a524e30e43b52ef4c83a00f26f5832b30a65b45a /sys/geom | |
parent | 446c24ca7a6af68dfed415abc309c05b74ba2e28 (diff) | |
download | FreeBSD-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.c | 8 |
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; - } } } |