forked from Minki/linux
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: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
9af177ee3e
commit
2be2eb02e2
@ -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;
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user