OSDN Git Service

io_uring: process requests completed with -EAGAIN on poll list
authorBijan Mottahedeh <bijan.mottahedeh@oracle.com>
Fri, 3 Apr 2020 20:51:33 +0000 (13:51 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 3 Apr 2020 20:55:39 +0000 (14:55 -0600)
commit581f981034890dfd27be7e98946e8f0461f3967a
tree6025e4ec59cc494b03333ab11c73224c6f26624f
parentc336e992cb1cb1db9ee608dfb30342ae781057ab
io_uring: process requests completed with -EAGAIN on poll list

A request that completes with an -EAGAIN result after it has been added
to the poll list, will not be removed from that list in io_do_iopoll()
because the f_op->iopoll() will not succeed for that request.

Maintain a retryable local list similar to the done list, and explicity
reissue requests with an -EAGAIN result.

Signed-off-by: Bijan Mottahedeh <bijan.mottahedeh@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c