Currently, IOPOLL returns the number of completed requests, but with REQ_F_CQE_SKIP there are not the same thing anymore. That may be confusing as non-iopoll wait cares only about CQEs, so make io_do_iopoll return the number of posted CQEs. Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> --- fs/io_uring.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/io_uring.c b/fs/io_uring.c index 64add8260abb..ea7a0daa0b3b 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -2538,10 +2538,10 @@ static int io_do_iopoll(struct io_ring_ctx *ctx, bool force_nonspin) /* order with io_complete_rw_iopoll(), e.g. ->result updates */ if (!smp_load_acquire(&req->iopoll_completed)) break; + if (unlikely(req->flags & REQ_F_CQE_SKIP)) + continue; - if (!(req->flags & REQ_F_CQE_SKIP)) - __io_fill_cqe(ctx, req->user_data, req->result, - io_put_kbuf(req)); + __io_fill_cqe(ctx, req->user_data, req->result, io_put_kbuf(req)); nr_events++; } -- 2.34.0