From: Nadav Har'El <n...@scylladb.com>
Committer: Nadav Har'El <n...@scylladb.com>
poll: don't return POLLNVAL from poll_no_poll()
The trivial poll_no_poll() returned POLLNVAL if it got a bit it doesn't
recognize. This is wrong: poll() should ignore bits it doesn't recognize
and poll(1) states that POLLNVAL is only to be returned if the file
descriptor isn't open. This patch just drops the wrong test.
Before this patch, adding an extra bit not listed, like EPOLLRDHUP,
caused POLLNVAL to be returned. Worse, when using epoll, it did not
expect to ever get back POLLNVAL from poll(), and caused an assertion
Signed-off-by: Nadav Har'El <n...@scylladb.com>
diff --git a/core/poll.cc b/core/poll.cc
@@ -67,16 +67,7 @@ using namespace std;
int poll_no_poll(int events)
- * Return true for read/write. If the user asked for something
- * special, return POLLNVAL, so that clients have a way of
- * determining reliably whether or not the extended
- * functionality is present without hard-coding knowledge
- * of specific filesystem implementations.
- if (events & ~POLLSTANDARD)
- return (POLLNVAL);
+ // Return ready for read/write.
return (events & (POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM));
You received this message because you are subscribed to the Google Groups "OSv
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.