summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fs/fifofs/fifo_vnops.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c
index 71ba03c..4494871 100644
--- a/sys/fs/fifofs/fifo_vnops.c
+++ b/sys/fs/fifofs/fifo_vnops.c
@@ -224,11 +224,13 @@ fifo_open(ap)
if (fip->fi_writers == 1) {
SOCK_LOCK(fip->fi_readsock);
fip->fi_readsock->so_state &= ~SS_CANTRCVMORE;
+ SOCK_UNLOCK(fip->fi_readsock);
if (fip->fi_readers > 0) {
wakeup((caddr_t)&fip->fi_readers);
+ SOCK_LOCK(fip->fi_writesock);
sorwakeup(fip->fi_writesock);
+ SOCK_UNLOCK(fip->fi_writesock);
}
- SOCK_UNLOCK(fip->fi_readsock);
}
}
if ((ap->a_mode & FREAD) && (ap->a_mode & O_NONBLOCK) == 0) {
OpenPOWER on IntegriCloud