summaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache/writeback.h
diff options
context:
space:
mode:
authorMarkus Stockhausen <stockhausen@collogia.de>2018-07-27 17:09:53 +0200
committerJens Axboe <axboe@kernel.dk>2018-07-27 17:09:53 +0200
commitdc30b96ab6d569060741572cf30517d3179429a8 (patch)
tree9b84c38b14a2064c82766d3beca0511820e4606c /drivers/md/bcache/writeback.h
parentscsi: virtio_scsi: fix pi_bytes{out,in} on 4 KiB block size devices (diff)
downloadlinux-dc30b96ab6d569060741572cf30517d3179429a8.tar.xz
linux-dc30b96ab6d569060741572cf30517d3179429a8.zip
readahead: stricter check for bdi io_pages
ondemand_readahead() checks bdi->io_pages to cap the maximum pages that need to be processed. This works until the readit section. If we would do an async only readahead (async size = sync size) and target is at beginning of window we expand the pages by another get_next_ra_size() pages. Btrace for large reads shows that kernel always issues a doubled size read at the beginning of processing. Add an additional check for io_pages in the lower part of the func. The fix helps devices that hard limit bio pages and rely on proper handling of max_hw_read_sectors (e.g. older FusionIO cards). For that reason it could qualify for stable. Fixes: 9491ae4a ("mm: don't cap request size based on read-ahead setting") Cc: stable@vger.kernel.org Signed-off-by: Markus Stockhausen stockhausen@collogia.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/md/bcache/writeback.h')
0 files changed, 0 insertions, 0 deletions