Lines Matching refs:ra

33 file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping)  in file_ra_state_init()  argument
35 ra->ra_pages = inode_to_bdi(mapping->host)->ra_pages; in file_ra_state_init()
36 ra->prev_pos = -1; in file_ra_state_init()
226 struct file_ra_state *ra = &filp->f_ra; in force_page_cache_readahead() local
236 max_pages = max_t(unsigned long, bdi->io_pages, ra->ra_pages); in force_page_cache_readahead()
275 static unsigned long get_next_ra_size(struct file_ra_state *ra, in get_next_ra_size() argument
278 unsigned long cur = ra->size; in get_next_ra_size()
348 struct file_ra_state *ra, in try_context_readahead() argument
371 ra->start = offset; in try_context_readahead()
372 ra->size = min(size + req_size, max); in try_context_readahead()
373 ra->async_size = 1; in try_context_readahead()
383 struct file_ra_state *ra, struct file *filp, in ondemand_readahead() argument
388 unsigned long max_pages = ra->ra_pages; in ondemand_readahead()
409 if ((offset == (ra->start + ra->size - ra->async_size) || in ondemand_readahead()
410 offset == (ra->start + ra->size))) { in ondemand_readahead()
411 ra->start += ra->size; in ondemand_readahead()
412 ra->size = get_next_ra_size(ra, max_pages); in ondemand_readahead()
413 ra->async_size = ra->size; in ondemand_readahead()
433 ra->start = start; in ondemand_readahead()
434 ra->size = start - offset; /* old async_size */ in ondemand_readahead()
435 ra->size += req_size; in ondemand_readahead()
436 ra->size = get_next_ra_size(ra, max_pages); in ondemand_readahead()
437 ra->async_size = ra->size; in ondemand_readahead()
452 prev_offset = (unsigned long long)ra->prev_pos >> PAGE_SHIFT; in ondemand_readahead()
460 if (try_context_readahead(mapping, ra, offset, req_size, max_pages)) in ondemand_readahead()
470 ra->start = offset; in ondemand_readahead()
471 ra->size = get_init_ra_size(req_size, max_pages); in ondemand_readahead()
472 ra->async_size = ra->size > req_size ? ra->size - req_size : ra->size; in ondemand_readahead()
481 if (offset == ra->start && ra->size == ra->async_size) { in ondemand_readahead()
482 add_pages = get_next_ra_size(ra, max_pages); in ondemand_readahead()
483 if (ra->size + add_pages <= max_pages) { in ondemand_readahead()
484 ra->async_size = add_pages; in ondemand_readahead()
485 ra->size += add_pages; in ondemand_readahead()
487 ra->size = max_pages; in ondemand_readahead()
488 ra->async_size = max_pages >> 1; in ondemand_readahead()
492 return ra_submit(ra, mapping, filp); in ondemand_readahead()
510 struct file_ra_state *ra, struct file *filp, in page_cache_sync_readahead() argument
514 if (!ra->ra_pages) in page_cache_sync_readahead()
527 ondemand_readahead(mapping, ra, filp, false, offset, req_size); in page_cache_sync_readahead()
548 struct file_ra_state *ra, struct file *filp, in page_cache_async_readahead() argument
553 if (!ra->ra_pages) in page_cache_async_readahead()
574 ondemand_readahead(mapping, ra, filp, true, offset, req_size); in page_cache_async_readahead()