diff --git a/fs/io_uring.c b/fs/io_uring.c
index 02788fd54357cac531d8d2ae64f93185f3359584..5018d4928d3e77feecf0a4f66c684b42d3bedded 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -8917,6 +8917,10 @@ void __io_uring_task_cancel(void)
 	/* make sure overflow events are dropped */
 	atomic_inc(&tctx->in_idle);
 
+	/* trigger io_disable_sqo_submit() */
+	if (tctx->sqpoll)
+		__io_uring_files_cancel(NULL);
+
 	do {
 		/* read completions before cancelations */
 		inflight = tctx_inflight(tctx);