Files
linux/mm
Hao Xu c8d317aa18 io_uring: fix async buffered reads when readahead is disabled
The async buffered reads feature is not working when readahead is
turned off. There are two things to concern:

- when doing retry in io_read, not only the IOCB_WAITQ flag but also
  the IOCB_NOWAIT flag is still set, which makes it goes to would_block
  phase in generic_file_buffered_read() and then return -EAGAIN. After
  that, the io-wq thread work is queued, and later doing the async
  reads in the old way.

- even if we remove IOCB_NOWAIT when doing retry, the feature is still
  not running properly, since in generic_file_buffered_read() it goes to
  lock_page_killable() after calling mapping->a_ops->readpage() to do
  IO, and thus causing process to sleep.

Fixes: 1a0a7853b9 ("mm: support async buffered reads in generic_file_buffered_read()")
Fixes: 3b2a4439e0 ("io_uring: get rid of kiocb_wait_page_queue_init()")
Signed-off-by: Hao Xu <haoxu@linux.alibaba.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2020-09-29 07:54:00 -06:00
..
2020-08-12 10:57:57 -07:00
2020-08-12 10:57:57 -07:00
2020-04-07 10:43:41 -07:00
2020-08-07 11:33:26 -07:00
…
…
2020-08-12 10:57:58 -07:00
2020-06-08 11:05:55 -07:00
2020-08-07 11:33:28 -07:00
2020-08-12 10:57:58 -07:00
2020-06-04 19:06:24 -07:00
2020-08-12 10:57:58 -07:00