From: Pavel Begunkov Date: Thu, 30 Jul 2020 15:43:48 +0000 (+0300) Subject: io_uring: fix stalled deferred requests X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=dd9dfcdf5a603680458f5e7b0d2273c66e5417db;p=linux.git io_uring: fix stalled deferred requests Always do io_commit_cqring() after completing a request, even if it was accounted as overflowed on the CQ side. Failing to do that may lead to not to pushing deferred requests when needed, and so stalling the whole ring. Signed-off-by: Pavel Begunkov Signed-off-by: Jens Axboe --- diff --git a/fs/io_uring.c b/fs/io_uring.c index 6e2322525da64..11c1abe8bd1a6 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -7849,6 +7849,7 @@ static void io_uring_cancel_files(struct io_ring_ctx *ctx, } WRITE_ONCE(ctx->rings->cq_overflow, atomic_inc_return(&ctx->cached_cq_overflow)); + io_commit_cqring(ctx); spin_unlock_irq(&ctx->completion_lock); /*