Apply by doing:
cd /usr/src
patch -p0 < 010_fifofs.patch
And then rebuild your kernel.
Index: sys/miscfs/fifofs/fifo_vnops.c
===================================================================
RCS file: /cvs/src/sys/miscfs/fifofs/fifo_vnops.c,v
retrieving revision 1.19
retrieving revision 1.19.2.1
diff -u -p -r1.19 -r1.19.2.1
--- sys/miscfs/fifofs/fifo_vnops.c 2 Mar 2004 04:42:52 -0000 1.19
+++ sys/miscfs/fifofs/fifo_vnops.c 26 May 2004 20:27:43 -0000 1.19.2.1
@@ -191,18 +191,20 @@ fifo_open(v)
rso->so_state |= SS_CANTRCVMORE;
}
if (ap->a_mode & FREAD) {
- if (fip->fi_readers++ == 0) {
+ fip->fi_readers++;
+ if (fip->fi_readers == 1) {
fip->fi_writesock->so_state &= ~SS_CANTSENDMORE;
if (fip->fi_writers > 0)
wakeup(&fip->fi_writers);
}
}
if (ap->a_mode & FWRITE) {
+ fip->fi_writers++;
if ((ap->a_mode & O_NONBLOCK) && fip->fi_readers == 0) {
error = ENXIO;
goto bad;
}
- if (fip->fi_writers++ == 0) {
+ if (fip->fi_writers == 1) {
fip->fi_readsock->so_state &= ~SS_CANTRCVMORE;
if (fip->fi_readers > 0)
wakeup(&fip->fi_readers);