]> git.baikalelectronics.ru Git - kernel.git/commit
mm: mark async iocb read as NOWAIT once some data has been copied
authorJens Axboe <axboe@kernel.dk>
Sat, 17 Oct 2020 14:31:29 +0000 (08:31 -0600)
committerJens Axboe <axboe@kernel.dk>
Sat, 17 Oct 2020 19:49:05 +0000 (13:49 -0600)
commit5cf0d0e5992f5f8da926042c54792c006f38705e
tree464cd1511166ea7adb526f7f1911755d7833bb7f
parent691d8b1dad55d6243683f72a2bce1f2380d1fa1c
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: d5d70bd92607 ("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>
mm/filemap.c