Skip to content

Commit 30b6487

Browse files
committed
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
2 parents 4936ce1 + eacc6df commit 30b6487

File tree

1 file changed

+0
-12
lines changed

1 file changed

+0
-12
lines changed

fs/io_uring.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1863,18 +1863,6 @@ static int io_read(struct io_kiocb *req, struct io_kiocb **nxt,
18631863
else
18641864
ret2 = loop_rw_iter(READ, req->file, kiocb, &iter);
18651865

1866-
/*
1867-
* In case of a short read, punt to async. This can happen
1868-
* if we have data partially cached. Alternatively we can
1869-
* return the short read, in which case the application will
1870-
* need to issue another SQE and wait for it. That SQE will
1871-
* need async punt anyway, so it's more efficient to do it
1872-
* here.
1873-
*/
1874-
if (force_nonblock && !(req->flags & REQ_F_NOWAIT) &&
1875-
(req->flags & REQ_F_ISREG) &&
1876-
ret2 > 0 && ret2 < io_size)
1877-
ret2 = -EAGAIN;
18781866
/* Catch -EAGAIN return for forced non-blocking submission */
18791867
if (!force_nonblock || ret2 != -EAGAIN) {
18801868
kiocb_done(kiocb, ret2, nxt, req->in_async);

0 commit comments

Comments
 (0)