diff options
author | Jens Axboe <axboe@kernel.dk> | 2020-10-17 16:31:29 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-10-17 21:49:05 +0200 |
commit | 13bd691421bc191a402d2e0d3da5f248d170a632 (patch) | |
tree | 464cd1511166ea7adb526f7f1911755d7833bb7f /kernel/entry | |
parent | io_uring: fix double poll mask init (diff) | |
download | linux-13bd691421bc191a402d2e0d3da5f248d170a632.tar.xz linux-13bd691421bc191a402d2e0d3da5f248d170a632.zip |
mm: mark async iocb read as NOWAIT once some data has been copied
Once we've copied some data for an iocb that is marked with IOCB_WAITQ,
we should no longer attempt to async lock a new page. Instead make sure
we return the copied amount, and let the caller retry, instead of
returning -EIOCBQUEUED for a new page.
This should only be possible with read-ahead disabled on the below
device, and multiple threads racing on the same file. Haven't been able
to reproduce on anything else.
Cc: stable@vger.kernel.org # v5.9
Fixes: 1a0a7853b901 ("mm: support async buffered reads in generic_file_buffered_read()")
Reported-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'kernel/entry')
0 files changed, 0 insertions, 0 deletions