diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 9c92ca081c115d1de631a4e81906c8c611cfd1c6..fab581a31dc18b1aa8461a09d995f31b0a9d83af 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -3160,6 +3160,7 @@ static __cold bool io_uring_try_cancel_requests(struct io_ring_ctx *ctx,
 		while (!wq_list_empty(&ctx->iopoll_list)) {
 			io_iopoll_try_reap_events(ctx);
 			ret = true;
+			cond_resched();
 		}
 	}