• Home
  • Raw
  • Download

Lines Matching refs:ra

32 file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping)  in file_ra_state_init()  argument
34 ra->ra_pages = inode_to_bdi(mapping->host)->ra_pages; in file_ra_state_init()
35 ra->prev_pos = -1; in file_ra_state_init()
225 struct file_ra_state *ra = &filp->f_ra; in force_page_cache_readahead() local
235 max_pages = max_t(unsigned long, bdi->io_pages, ra->ra_pages); in force_page_cache_readahead()
274 static unsigned long get_next_ra_size(struct file_ra_state *ra, in get_next_ra_size() argument
277 unsigned long cur = ra->size; in get_next_ra_size()
349 struct file_ra_state *ra, in try_context_readahead() argument
372 ra->start = offset; in try_context_readahead()
373 ra->size = min(size + req_size, max); in try_context_readahead()
374 ra->async_size = 1; in try_context_readahead()
384 struct file_ra_state *ra, struct file *filp, in ondemand_readahead() argument
389 unsigned long max_pages = ra->ra_pages; in ondemand_readahead()
410 if ((offset == (ra->start + ra->size - ra->async_size) || in ondemand_readahead()
411 offset == (ra->start + ra->size))) { in ondemand_readahead()
412 ra->start += ra->size; in ondemand_readahead()
413 ra->size = get_next_ra_size(ra, max_pages); in ondemand_readahead()
414 ra->async_size = ra->size; in ondemand_readahead()
434 ra->start = start; in ondemand_readahead()
435 ra->size = start - offset; /* old async_size */ in ondemand_readahead()
436 ra->size += req_size; in ondemand_readahead()
437 ra->size = get_next_ra_size(ra, max_pages); in ondemand_readahead()
438 ra->async_size = ra->size; in ondemand_readahead()
453 prev_offset = (unsigned long long)ra->prev_pos >> PAGE_SHIFT; in ondemand_readahead()
461 if (try_context_readahead(mapping, ra, offset, req_size, max_pages)) in ondemand_readahead()
471 ra->start = offset; in ondemand_readahead()
472 ra->size = get_init_ra_size(req_size, max_pages); in ondemand_readahead()
473 ra->async_size = ra->size > req_size ? ra->size - req_size : ra->size; in ondemand_readahead()
482 if (offset == ra->start && ra->size == ra->async_size) { in ondemand_readahead()
483 add_pages = get_next_ra_size(ra, max_pages); in ondemand_readahead()
484 if (ra->size + add_pages <= max_pages) { in ondemand_readahead()
485 ra->async_size = add_pages; in ondemand_readahead()
486 ra->size += add_pages; in ondemand_readahead()
488 ra->size = max_pages; in ondemand_readahead()
489 ra->async_size = max_pages >> 1; in ondemand_readahead()
493 return ra_submit(ra, mapping, filp); in ondemand_readahead()
511 struct file_ra_state *ra, struct file *filp, in page_cache_sync_readahead() argument
515 if (!ra->ra_pages) in page_cache_sync_readahead()
528 ondemand_readahead(mapping, ra, filp, false, offset, req_size); in page_cache_sync_readahead()
549 struct file_ra_state *ra, struct file *filp, in page_cache_async_readahead() argument
554 if (!ra->ra_pages) in page_cache_async_readahead()
575 ondemand_readahead(mapping, ra, filp, true, offset, req_size); in page_cache_async_readahead()