Lines Matching refs:ractl

174 void page_cache_ra_unbounded(struct readahead_control *ractl,  in page_cache_ra_unbounded()  argument
177 struct address_space *mapping = ractl->mapping; in page_cache_ra_unbounded()
178 unsigned long index = readahead_index(ractl); in page_cache_ra_unbounded()
211 read_pages(ractl, &page_pool, true); in page_cache_ra_unbounded()
212 i = ractl->_index + ractl->_nr_pages - index - 1; in page_cache_ra_unbounded()
225 read_pages(ractl, &page_pool, true); in page_cache_ra_unbounded()
226 i = ractl->_index + ractl->_nr_pages - index - 1; in page_cache_ra_unbounded()
231 ractl->_nr_pages++; in page_cache_ra_unbounded()
239 read_pages(ractl, &page_pool, false); in page_cache_ra_unbounded()
251 void do_page_cache_ra(struct readahead_control *ractl, in do_page_cache_ra() argument
254 struct inode *inode = ractl->mapping->host; in do_page_cache_ra()
255 unsigned long index = readahead_index(ractl); in do_page_cache_ra()
269 page_cache_ra_unbounded(ractl, nr_to_read, lookahead_size); in do_page_cache_ra()
276 void force_page_cache_ra(struct readahead_control *ractl, in force_page_cache_ra() argument
279 struct address_space *mapping = ractl->mapping; in force_page_cache_ra()
280 struct file_ra_state *ra = ractl->ra; in force_page_cache_ra()
292 index = readahead_index(ractl); in force_page_cache_ra()
300 ractl->_index = index; in force_page_cache_ra()
301 do_page_cache_ra(ractl, this_chunk, 0); in force_page_cache_ra()
438 static void ondemand_readahead(struct readahead_control *ractl, in ondemand_readahead() argument
441 struct backing_dev_info *bdi = inode_to_bdi(ractl->mapping->host); in ondemand_readahead()
442 struct file_ra_state *ra = ractl->ra; in ondemand_readahead()
445 unsigned long index = readahead_index(ractl); in ondemand_readahead()
483 start = page_cache_next_miss(ractl->mapping, index + 1, in ondemand_readahead()
517 if (try_context_readahead(ractl->mapping, ra, index, req_size, in ondemand_readahead()
525 do_page_cache_ra(ractl, req_size, 0); in ondemand_readahead()
551 ractl->_index = ra->start; in ondemand_readahead()
552 do_page_cache_ra(ractl, ra->size, ra->async_size); in ondemand_readahead()
555 void page_cache_sync_ra(struct readahead_control *ractl, in page_cache_sync_ra() argument
558 bool do_forced_ra = ractl->file && (ractl->file->f_mode & FMODE_RANDOM); in page_cache_sync_ra()
566 if (!ractl->ra->ra_pages || blk_cgroup_congested()) { in page_cache_sync_ra()
567 if (!ractl->file) in page_cache_sync_ra()
575 force_page_cache_ra(ractl, req_count); in page_cache_sync_ra()
580 ondemand_readahead(ractl, false, req_count); in page_cache_sync_ra()
584 void page_cache_async_ra(struct readahead_control *ractl, in page_cache_async_ra() argument
588 if (!ractl->ra->ra_pages) in page_cache_async_ra()
602 if (inode_read_congested(ractl->mapping->host)) in page_cache_async_ra()
609 ondemand_readahead(ractl, true, req_count); in page_cache_async_ra()
662 void readahead_expand(struct readahead_control *ractl, in readahead_expand() argument
665 struct address_space *mapping = ractl->mapping; in readahead_expand()
666 struct file_ra_state *ra = ractl->ra; in readahead_expand()
673 while (ractl->_index > new_index) { in readahead_expand()
674 unsigned long index = ractl->_index - 1; in readahead_expand()
688 ractl->_nr_pages++; in readahead_expand()
689 ractl->_index = page->index; in readahead_expand()
692 new_len += new_start - readahead_pos(ractl); in readahead_expand()
696 while (ractl->_nr_pages < new_nr_pages) { in readahead_expand()
697 unsigned long index = ractl->_index + ractl->_nr_pages; in readahead_expand()
710 ractl->_nr_pages++; in readahead_expand()