diff --git a/src/core/lib/iomgr/ev_epoll_linux.c b/src/core/lib/iomgr/ev_epoll_linux.c
index 4282d01a2bf6ae49d81a2d8824cf6936e585c85e..633d48034796f4657c7a5009441a994f1ab78316 100644
--- a/src/core/lib/iomgr/ev_epoll_linux.c
+++ b/src/core/lib/iomgr/ev_epoll_linux.c
@@ -517,7 +517,7 @@ static polling_island *polling_island_create(grpc_exec_ctx *exec_ctx,
 
 done:
   if (*error != GRPC_ERROR_NONE) {
-    if (pi->epoll_fd < 0) {
+    if (pi->epoll_fd >= 0) {
       close(pi->epoll_fd);
     }
     if (pi->workqueue != NULL) {