diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-10-17 09:20:46 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-10-17 15:49:11 -0600 |
commit | 491381ce07ca57f68c49c79a8a43da5b60749e32 (patch) | |
tree | fc3ae1c4ef80323a180bd24fd5f68193ca267bc8 /scripts/objdiff | |
parent | 6333ff6e5a43703a8f7ea16b0f2890a38f5467f0 (diff) | |
download | linux-491381ce07ca57f68c49c79a8a43da5b60749e32.tar.bz2 |
io_uring: fix up O_NONBLOCK handling for sockets
We've got two issues with the non-regular file handling for non-blocking
IO:
1) We don't want to re-do a short read in full for a non-regular file,
as we can't just read the data again.
2) For non-regular files that don't support non-blocking IO attempts,
we need to punt to async context even if the file is opened as
non-blocking. Otherwise the caller always gets -EAGAIN.
Add two new request flags to handle these cases. One is just a cache
of the inode S_ISREG() status, the other tells io_uring that we always
need to punt this request to async context, even if REQ_F_NOWAIT is set.
Cc: stable@vger.kernel.org
Reported-by: Hrvoje Zeba <zeba.hrvoje@gmail.com>
Tested-by: Hrvoje Zeba <zeba.hrvoje@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions