summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2001-11-08 10:28:32 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2001-11-08 10:28:32 +0000
commitd25c683ad5b7bdbd33958cabcf63c8a9bbbd1e7d (patch)
tree0d49d14c404c3a8a7b7a7faab9ff8c8097b5bb0e
parentce17880650c885f827d45b3d783bffcb2ba5e198 (diff)
Notes
-rw-r--r--sys/fs/fifofs/fifo_vnops.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c
index baddfa4b5f75..e69532e99b36 100644
--- a/sys/fs/fifofs/fifo_vnops.c
+++ b/sys/fs/fifofs/fifo_vnops.c
@@ -284,6 +284,11 @@ fifo_read(ap)
VOP_UNLOCK(ap->a_vp, 0, td);
error = soreceive(rso, (struct sockaddr **)0, uio, (struct mbuf **)0,
(struct mbuf **)0, (int *)0);
+ /*
+ * Clear EOF indication after first such return.
+ */
+ if (uio->uio_resid == startresid)
+ rso->so_state &= ~SS_CANTRCVMORE;
vn_lock(ap->a_vp, LK_EXCLUSIVE | LK_RETRY, td);
if (ap->a_ioflag & IO_NDELAY)
rso->so_state &= ~SS_NBIO;