diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-01-10 21:03:12 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-01-10 21:03:12 +0100 |
commit | 30b6487d151981e850de19b2b3feefd9b9791957 (patch) | |
tree | d0abebc4fb2a1978d5722ef0b632cac868dcca45 /fs | |
parent | Merge tag 'mtd/fixes-for-5.5-rc6' of git://git.kernel.org/pub/scm/linux/kerne... (diff) | |
parent | io_uring: remove punt of short reads to async context (diff) | |
download | linux-30b6487d151981e850de19b2b3feefd9b9791957.tar.xz linux-30b6487d151981e850de19b2b3feefd9b9791957.zip |
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
Diffstat (limited to 'fs')
-rw-r--r-- | fs/io_uring.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index 562e3a1a1bf9..38b54051facd 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -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); |