summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorBob Beck <beck@cvs.openbsd.org>2012-10-17 23:58:26 +0000
committerBob Beck <beck@cvs.openbsd.org>2012-10-17 23:58:26 +0000
commit8bd7ff268ea8fccc3607eb1d7852e107a105837a (patch)
tree04fd14861924836551c8907bdab85b5a7c367114 /sys
parenta9417804ac6e98255cde8d1b92c4d3802b17b078 (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.c4
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;
}