diff --git a/fs/io_uring.c b/fs/io_uring.c index 5453d1842e2bf3f6f6ec9a4cbf5a987332066bb1..f3078708fdb86cf394dea9d0b28cd27d876277e0 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -8751,9 +8751,10 @@ static void io_uring_cancel_task_requests(struct io_ring_ctx *ctx, io_cancel_defer_files(ctx, task, files); io_cqring_overflow_flush(ctx, true, task, files); - io_uring_cancel_files(ctx, task, files); if (!files) __io_uring_cancel_task_requests(ctx, task); + else + io_uring_cancel_files(ctx, task, files); if ((ctx->flags & IORING_SETUP_SQPOLL) && ctx->sq_data) { atomic_dec(&task->io_uring->in_idle);