Skip to content

Commit

Permalink
Merge tag 'io_uring-5.5-2020-01-10' of git://git.kernel.dk/linux-block
Browse files Browse the repository at this point in the history
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
  • Loading branch information
torvalds committed Jan 10, 2020
2 parents 4936ce1 + eacc6df commit 30b6487
Showing 1 changed file with 0 additions and 12 deletions.
12 changes: 0 additions & 12 deletions fs/io_uring.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 30b6487

Please sign in to comment.