io_uring: don't map read/write iovec potentially twice
authorJens Axboe <axboe@kernel.dk>
Fri, 31 Jan 2020 19:06:52 +0000 (12:06 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 4 Feb 2020 00:27:47 +0000 (17:27 -0700)
commit5d204bcfa09330972ad3428a8f81c23f371d3e6d
tree35fdbe2c6b198f4a07fc44f09ef3c306f238e699
parent0b7b21e42ba2d6ac9595a4358a9354249605a3af
io_uring: don't map read/write iovec potentially twice

If we have a read/write that is deferred, we already setup the async IO
context for that request, and mapped it. When we later try and execute
the request and we get -EAGAIN, we don't want to attempt to re-map it.
If we do, we end up with garbage in the iovec, which typically leads
to an -EFAULT or -EINVAL completion.

Cc: stable@vger.kernel.org # 5.5
Reported-by: Dan Melnic <dmm@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c