page_cache_readahead — generic adaptive readahead
unsigned long page_cache_readahead
(struct address_space * mapping, struct file_ra_state * ra, struct file * filp, pgoff_t offset, unsigned long req_size);
address_space which holds the pagecache and I/O vectors
file_ra_state which holds the readahead state
passed on to ->readpage and ->readpages
start offset into mapping, in PAGE_CACHE_SIZE units
hint: total size of the read which the caller is performing in PAGE_CACHE_SIZE units
page_cache_readahead is the main function. If performs the adaptive readahead window size management and submits the readahead I/O.
Note that filp is purely used for passing on to the ->readpage[s]()
it may refer to a different file from mapping (so we may not use filp->f_mapping or filp->f_path.dentry->d_inode here). Also, ra may not be equal to &filp->f_ra.