Lines Matching refs:ra

136  * memset *ra to zero.
139 file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping)
141 ra->ra_pages = inode_to_bdi(mapping->host)->ra_pages;
142 ra->prev_pos = -1;
162 * Clean up the remaining folios. The sizes in ->ra
170 rac->ra->size -= nr;
171 if (rac->ra->async_size >= nr) {
172 rac->ra->async_size -= nr;
310 struct file_ra_state *ra = ractl->ra;
322 max_pages = max_t(unsigned long, bdi->io_pages, ra->ra_pages);
340 * for 128k (32 page) max ra
361 static unsigned long get_next_ra_size(struct file_ra_state *ra,
364 unsigned long cur = ra->size;
434 struct file_ra_state *ra,
457 ra->start = index;
458 ra->size = min(size + req_size, max);
459 ra->async_size = 1;
487 struct file_ra_state *ra, unsigned int new_order)
492 pgoff_t mark = index + ra->size - ra->async_size;
496 if (!mapping_large_folio_support(mapping) || ra->size < 4)
499 limit = min(limit, index + ra->size - 1);
505 while ((1 << new_order) > ra->size)
531 ra->size += index - limit - 1;
532 ra->async_size += index - limit - 1;
546 do_page_cache_ra(ractl, ra->size, ra->async_size);
556 struct file_ra_state *ra = ractl->ra;
557 unsigned long max_pages = ra->ra_pages;
580 expected = round_down(ra->start + ra->size - ra->async_size,
582 if (index == expected || index == (ra->start + ra->size)) {
583 ra->start += ra->size;
584 ra->size = get_next_ra_size(ra, max_pages);
585 ra->async_size = ra->size;
606 ra->start = start;
607 ra->size = start - index; /* old async_size */
608 ra->size += req_size;
609 ra->size = get_next_ra_size(ra, max_pages);
610 ra->async_size = ra->size;
625 prev_index = (unsigned long long)ra->prev_pos >> PAGE_SHIFT;
633 if (try_context_readahead(ractl->mapping, ra, index, req_size,
645 ra->start = index;
646 ra->size = get_init_ra_size(req_size, max_pages);
647 ra->async_size = ra->size > req_size ? ra->size - req_size : ra->size;
656 if (index == ra->start && ra->size == ra->async_size) {
657 add_pages = get_next_ra_size(ra, max_pages);
658 if (ra->size + add_pages <= max_pages) {
659 ra->async_size = add_pages;
660 ra->size += add_pages;
662 ra->size = max_pages;
663 ra->async_size = max_pages >> 1;
667 ractl->_index = ra->start;
668 page_cache_ra_order(ractl, ra, order);
682 if (!ractl->ra->ra_pages || blk_cgroup_congested()) {
703 if (!ractl->ra->ra_pages)
782 struct file_ra_state *ra = ractl->ra;
836 if (ra) {
837 ra->size++;
838 ra->async_size++;