Don't return EPIPE from pipe kqfilter
authorvisa <visa@openbsd.org>
Tue, 9 May 2023 14:22:17 +0000 (14:22 +0000)
committervisa <visa@openbsd.org>
Tue, 9 May 2023 14:22:17 +0000 (14:22 +0000)
commitd1d5acb9cfe37705e80195008bc98f2074b61563
treeef9c2ded7959eddfe0415bd6716ea610bb1248c7
parent3e6bf5f9495e09f9ae248e5e58b87e62bb783dda
Don't return EPIPE from pipe kqfilter

Proceed with the registration of an EVFILT_WRITE filter even if the
pipe's other end has been closed, instead of failing with error EPIPE.
The filter will trigger immediately. This reduces the possible outcomes
when a kevent(2) call and a close(2) call race on the different ends
of a pipe.

This fixes a failure of lang/ghc unit test as reported by gnezdo@.

OK gnezdo@ mpi@
sys/kern/sys_generic.c
sys/kern/sys_pipe.c