diff options
| author | Jilles Tjoelker <jilles@FreeBSD.org> | 2009-09-01 20:58:41 +0000 |
|---|---|---|
| committer | Jilles Tjoelker <jilles@FreeBSD.org> | 2009-09-01 20:58:41 +0000 |
| commit | 33656b91cda2504e2d41759732ada5d6db293e81 (patch) | |
| tree | 981dd81ab20b2143640a5f88f9ae8368e7e39440 /sys/kern | |
| parent | e2ba743711283aac14dd37fb281817decbb80879 (diff) | |
Notes
Diffstat (limited to 'sys/kern')
| -rw-r--r-- | sys/kern/sys_generic.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index de703483b0c1..bd0f27933780 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -1228,6 +1228,13 @@ pollscan(td, fds, nfd) selfdalloc(td, fds); fds->revents = fo_poll(fp, fds->events, td->td_ucred, td); + /* + * POSIX requires POLLOUT to be never + * set simultaneously with POLLHUP. + */ + if ((fds->revents & POLLHUP) != 0) + fds->revents &= ~POLLOUT; + if (fds->revents != 0) n++; } |
