Commit 2be2eb02 authored by Jens Axboe's avatar Jens Axboe

io_uring: ensure reads re-import for selected buffers

If we drop buffers between scheduling a retry, then we need to re-import
when we start the request again.
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 9af177ee
...@@ -3737,6 +3737,16 @@ static int io_read(struct io_kiocb *req, unsigned int issue_flags) ...@@ -3737,6 +3737,16 @@ static int io_read(struct io_kiocb *req, unsigned int issue_flags)
if (unlikely(ret < 0)) if (unlikely(ret < 0))
return ret; return ret;
} else { } else {
/*
* Safe and required to re-import if we're using provided
* buffers, as we dropped the selected one before retry.
*/
if (req->flags & REQ_F_BUFFER_SELECT) {
ret = io_import_iovec(READ, req, &iovec, s, issue_flags);
if (unlikely(ret < 0))
return ret;
}
rw = req->async_data; rw = req->async_data;
s = &rw->s; s = &rw->s;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment