diff options
author | Jens Axboe <axboe@kernel.dk> | 2020-10-17 08:31:29 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-10-17 13:49:05 -0600 |
commit | 13bd691421bc191a402d2e0d3da5f248d170a632 (patch) | |
tree | 464cd1511166ea7adb526f7f1911755d7833bb7f /mm/readahead.c | |
parent | 58852d4d673760cf7c88b9360b3c24a041bec298 (diff) | |
download | lwn-13bd691421bc191a402d2e0d3da5f248d170a632.tar.gz lwn-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 'mm/readahead.c')
0 files changed, 0 insertions, 0 deletions