Date: Thu, 18 Aug 2022 21:24:30 GMT From: Mateusz Guzik <mjg@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 545db925c3d5 - main - pipe: fix EOF case for non-blocking fds Message-ID: <202208182124.27ILOUpu059113@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=545db925c3d5408e71e21432895770cd49fd2cf3 commit 545db925c3d5408e71e21432895770cd49fd2cf3 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2022-08-18 21:23:53 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2022-08-18 21:23:53 +0000 pipe: fix EOF case for non-blocking fds In particular unbreaks 'go build'. --- sys/kern/sys_pipe.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c index f9060ba2c8a6..67c340e9d39a 100644 --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -734,9 +734,8 @@ pipe_read(struct file *fp, struct uio *uio, struct ucred *active_cred, if ((fp->f_flag & FNONBLOCK) != 0 && !mac_pipe_check_read_enabled()) { if (__predict_false(uio->uio_resid == 0)) return (0); - if ((atomic_load_short(&rpipe->pipe_state) & PIPE_EOF) != 0) - return (0); - if (atomic_load_int(&rpipe->pipe_buffer.cnt) == 0 && + if ((atomic_load_short(&rpipe->pipe_state) & PIPE_EOF) == 0 && + atomic_load_int(&rpipe->pipe_buffer.cnt) == 0 && atomic_load_int(&rpipe->pipe_pages.cnt) == 0) return (EAGAIN); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202208182124.27ILOUpu059113>