diff --git a/src/core/iomgr/pollset_multipoller_with_poll_posix.c b/src/core/iomgr/pollset_multipoller_with_poll_posix.c
index 1249b1b64aa6aa9794a556bad3d47a58a024c820..b5b2d7534d8464e653e4e0cbebe5ff6b0a696928 100644
--- a/src/core/iomgr/pollset_multipoller_with_poll_posix.c
+++ b/src/core/iomgr/pollset_multipoller_with_poll_posix.c
@@ -119,7 +119,7 @@ static void multipoll_with_poll_pollset_maybe_work(
   pfds[0].revents = POLLOUT;
   for (i = 0; i < h->fd_count; i++) {
     int remove = grpc_fd_is_orphaned(h->fds[i]);
-    for (j = 0; j < h->del_count; j++) {
+    for (j = 0; !remove && j < h->del_count; j++) {
       if (h->fds[i] == h->dels[j]) remove = 1;
     }
     if (remove) {