diff options
author | Bob Beck <beck@cvs.openbsd.org> | 2012-10-17 23:58:26 +0000 |
---|---|---|
committer | Bob Beck <beck@cvs.openbsd.org> | 2012-10-17 23:58:26 +0000 |
commit | 8bd7ff268ea8fccc3607eb1d7852e107a105837a (patch) | |
tree | 04fd14861924836551c8907bdab85b5a7c367114 /sys | |
parent | a9417804ac6e98255cde8d1b92c4d3802b17b078 (diff) |
use wakeup here, not wakeup_one - avoids problem of not waking up writers
when there are more of them than size of queue waiting, and nothing else
going on.
ok miod@ kettenis@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_bufq.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_bufq.c b/sys/kern/kern_bufq.c index 9cebc7a6e4f..9838dd0827c 100644 --- a/sys/kern/kern_bufq.c +++ b/sys/kern/kern_bufq.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_bufq.c,v 1.22 2012/10/09 16:44:15 beck Exp $ */ +/* $OpenBSD: kern_bufq.c,v 1.23 2012/10/17 23:58:25 beck Exp $ */ /* * Copyright (c) 2010 Thordur I. Bjornsson <thib@openbsd.org> * Copyright (c) 2010 David Gwynne <dlg@openbsd.org> @@ -278,7 +278,7 @@ bufq_done(struct bufq *bq, struct buf *bp) if (bq->bufq_stop && bq->bufq_outstanding == 0) wakeup(&bq->bufq_outstanding); if (bq->bufq_waiting && bq->bufq_outstanding < bq->bufq_low) - wakeup_one(&bq->bufq_waiting); + wakeup(&bq->bufq_waiting); mtx_leave(&bq->bufq_mtx); bp->b_bq = NULL; } |