Hi Willy, Here's a set of patches to expand the use of the readahead_control struct, essentially from do_sync_mmap_readahead() down. It's on top of: http://git.infradead.org/users/willy/pagecache.git Also pass file_ra_state into force_page_cache_readahead(). The bugfix for khugepaged.c is included as that code is further changed here. David --- David Howells (6): 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: 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 | 4 ++- fs/btrfs/ioctl.c | 9 +++-- fs/btrfs/relocation.c | 10 +++--- fs/btrfs/send.c | 16 +++++---- fs/ext4/dir.c | 11 +++--- fs/f2fs/dir.c | 8 +++-- include/linux/pagemap.h | 7 ++-- mm/fadvise.c | 6 +++- mm/filemap.c | 32 +++++++++-------- mm/internal.h | 14 ++------ mm/khugepaged.c | 4 +-- mm/readahead.c | 70 ++++++++++++++++++------------------- 12 files changed, 100 insertions(+), 91 deletions(-)