It's okay for us to get an EPERM when doing an EPOLL_DEL on an fd; it
just means that before we got a chance to the EPOLL_DEL, we closed the
fd and reopened a new non-socket that wound up having the same fd.
Partial fix for Bug
3019973.
*/
event_debug((" ADD was redundant"));
} else if (op == EPOLL_CTL_DEL &&
- (errno == ENOENT || errno == EBADF)) {
+ (errno == ENOENT || errno == EBADF ||
+ errno == EPERM)) {
/* If a delete fails with one of these errors,
* that's fine too: we closed the fd before we
* got around to calling epoll_dispatch. */