Lines Matching refs:index
209 unsigned long index = readahead_index(ractl);
230 struct folio *folio = xa_load(&mapping->i_pages, index + i);
243 i = ractl->_index + ractl->_nr_pages - index - 1;
250 if (filemap_add_folio(mapping, folio, index + i,
255 i = ractl->_index + ractl->_nr_pages - index - 1;
285 unsigned long index = readahead_index(ractl);
293 if (index > end_index)
296 if (nr_to_read > end_index - index)
297 nr_to_read = end_index - index + 1;
312 unsigned long max_pages, index;
321 index = readahead_index(ractl);
329 ractl->_index = index;
332 index += this_chunk;
413 * Count contiguously cached pages from @index-1 to @index-@max,
419 pgoff_t index, unsigned long max)
424 head = page_cache_prev_miss(mapping, index - 1, max);
427 return index - 1 - head;
435 pgoff_t index,
441 size = count_history_pages(mapping, index, max);
454 if (size >= index)
457 ra->start = index;
464 static inline int ra_alloc_folio(struct readahead_control *ractl, pgoff_t index,
473 if (index == mark)
475 err = filemap_add_folio(ractl->mapping, folio, index, gfp);
490 pgoff_t index = readahead_index(ractl);
492 pgoff_t mark = index + ra->size - ra->async_size;
499 limit = min(limit, index + ra->size - 1);
510 while (index <= limit) {
514 if (index & ((1UL << order) - 1)) {
515 order = __ffs(index);
520 while (index + (1UL << order) - 1 > limit) {
524 err = ra_alloc_folio(ractl, index, mark, order, gfp);
527 index += 1UL << order;
530 if (index > limit) {
531 ra->size += index - limit - 1;
532 ra->async_size += index - limit - 1;
559 pgoff_t index = readahead_index(ractl);
573 if (!index)
577 * It's the expected callback index, assume sequential access.
582 if (index == expected || index == (ra->start + ra->size)) {
599 start = page_cache_next_miss(ractl->mapping, index + 1,
603 if (!start || start - index > max_pages)
607 ra->size = start - index; /* old async_size */
622 * trivial case: (index - prev_index) == 1
623 * unaligned reads: (index - prev_index) == 0
626 if (index - prev_index <= 1UL)
633 if (try_context_readahead(ractl->mapping, ra, index, req_size,
645 ra->start = index;
656 if (index == ra->start && ra->size == ra->async_size) {
790 unsigned long index = ractl->_index - 1;
791 struct folio *folio = xa_load(&mapping->i_pages, index);
799 if (filemap_add_folio(mapping, folio, index, gfp_mask) < 0) {
809 ractl->_index = folio->index;
817 unsigned long index = ractl->_index + ractl->_nr_pages;
818 struct folio *folio = xa_load(&mapping->i_pages, index);
826 if (filemap_add_folio(mapping, folio, index, gfp_mask) < 0) {