mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 17:51:57 +09:00
Merge tag 'io_uring-5.5-2020-01-10' of git://git.kernel.dk/linux-block
Pull io_uring fix from Jens Axboe: "Single fix for this series, fixing a regression with the short read handling. This just removes it, as it cannot safely be done for all cases" * tag 'io_uring-5.5-2020-01-10' of git://git.kernel.dk/linux-block: io_uring: remove punt of short reads to async context
This commit is contained in:
@@ -1863,18 +1863,6 @@ static int io_read(struct io_kiocb *req, struct io_kiocb **nxt,
|
||||
else
|
||||
ret2 = loop_rw_iter(READ, req->file, kiocb, &iter);
|
||||
|
||||
/*
|
||||
* In case of a short read, punt to async. This can happen
|
||||
* if we have data partially cached. Alternatively we can
|
||||
* return the short read, in which case the application will
|
||||
* need to issue another SQE and wait for it. That SQE will
|
||||
* need async punt anyway, so it's more efficient to do it
|
||||
* here.
|
||||
*/
|
||||
if (force_nonblock && !(req->flags & REQ_F_NOWAIT) &&
|
||||
(req->flags & REQ_F_ISREG) &&
|
||||
ret2 > 0 && ret2 < io_size)
|
||||
ret2 = -EAGAIN;
|
||||
/* Catch -EAGAIN return for forced non-blocking submission */
|
||||
if (!force_nonblock || ret2 != -EAGAIN) {
|
||||
kiocb_done(kiocb, ret2, nxt, req->in_async);
|
||||
|
||||
Reference in New Issue
Block a user