Hi Willy, Here's a set of patches to expand the use of the readahead_control struct, essentially from do_sync_mmap_readahead() down. Note that I've been passing the number of pages to read in rac->_nr_pages, and then saving it and changing it certain points, e.g. page_cache_readahead_unbounded(). Also pass file_ra_state into force_page_cache_readahead(). Also there's an apparent minor bug in khugepaged.c that I've included a patch for: page_cache_sync_readahead() looks to be given the wrong size in collapse_file(). David --- David Howells (7): Fix khugepaged's request size in collapse_file() mm: Make ondemand_readahead() take a readahead_control struct mm: Push readahead_control down into force_page_cache_readahead() mm: Pass readahead_control into page_cache_{sync,async}_readahead() mm: Make __do_page_cache_readahead() use rac->_nr_pages mm: Fold ra_submit() into do_sync_mmap_readahead() mm: Pass a file_ra_state struct into force_page_cache_readahead() fs/btrfs/free-space-cache.c | 7 +-- fs/btrfs/ioctl.c | 10 +++-- fs/btrfs/relocation.c | 14 +++--- fs/btrfs/send.c | 15 ++++--- fs/ext4/dir.c | 12 ++--- fs/ext4/verity.c | 8 ++-- fs/f2fs/dir.c | 10 +++-- fs/f2fs/verity.c | 8 ++-- include/linux/pagemap.h | 11 ++--- mm/fadvise.c | 6 ++- mm/filemap.c | 33 +++++++------- mm/internal.h | 16 +------ mm/khugepaged.c | 6 +-- mm/readahead.c | 89 ++++++++++++++++++------------------- 14 files changed, 127 insertions(+), 118 deletions(-)