OSDN Git Service

io_uring: fix iopoll -EAGAIN handling
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 28 Jun 2020 09:52:38 +0000 (12:52 +0300)
committerJens Axboe <axboe@kernel.dk>
Sun, 28 Jun 2020 14:13:03 +0000 (08:13 -0600)
commitf3a6fa2267480d7f19fbde8316372be46055e548
tree4f8eaac8f348559a00b3dda4b42a61ac159af7bc
parent3adfecaa647ff8afa4b6f5907193cf751a0f8351
io_uring: fix iopoll -EAGAIN handling

req->iopoll() is not necessarily called by a task that submitted a
request. Because of that, it's dangerous to grab_env() and punt async on
-EGAIN, potentially grabbing another task's mm and corrupting its
memory.

Do resubmit from the submitter task context.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c