Lines Matching refs:folio
149 struct folio *folio; in read_pages() local
162 while ((folio = readahead_folio(rac)) != NULL) { in read_pages()
163 folio_get(folio); in read_pages()
164 filemap_remove_folio(folio); in read_pages()
165 folio_unlock(folio); in read_pages()
166 folio_put(folio); in read_pages()
169 while ((folio = readahead_folio(rac)) != NULL) in read_pages()
170 aops->read_folio(rac->file, folio); in read_pages()
181 static struct folio *ractl_alloc_folio(struct readahead_control *ractl, in ractl_alloc_folio()
184 struct folio *folio; in ractl_alloc_folio() local
186 folio = filemap_alloc_folio(gfp_mask, order); in ractl_alloc_folio()
187 if (folio && ractl->dropbehind) in ractl_alloc_folio()
188 __folio_set_dropbehind(folio); in ractl_alloc_folio()
190 return folio; in ractl_alloc_folio()
252 struct folio *folio = xa_load(&mapping->i_pages, index + i); in page_cache_ra_unbounded() local
255 if (folio && !xa_is_value(folio)) { in page_cache_ra_unbounded()
270 folio = ractl_alloc_folio(ractl, gfp_mask, in page_cache_ra_unbounded()
272 if (!folio) in page_cache_ra_unbounded()
275 ret = filemap_add_folio(mapping, folio, index + i, gfp_mask); in page_cache_ra_unbounded()
277 folio_put(folio); in page_cache_ra_unbounded()
286 folio_set_readahead(folio); in page_cache_ra_unbounded()
287 ractl->_workingset |= folio_test_workingset(folio); in page_cache_ra_unbounded()
441 struct folio *folio = ractl_alloc_folio(ractl, gfp, order); in ra_alloc_folio() local
443 if (!folio) in ra_alloc_folio()
447 folio_set_readahead(folio); in ra_alloc_folio()
448 err = filemap_add_folio(ractl->mapping, folio, index, gfp); in ra_alloc_folio()
450 folio_put(folio); in ra_alloc_folio()
455 ractl->_workingset |= folio_test_workingset(folio); in ra_alloc_folio()
624 struct folio *folio, unsigned long req_count) in page_cache_async_ra() argument
638 if (folio_test_writeback(folio)) in page_cache_async_ra()
641 folio_clear_readahead(folio); in page_cache_async_ra()
652 folio_nr_pages(folio)); in page_cache_async_ra()
775 struct folio *folio = xa_load(&mapping->i_pages, index); in readahead_expand() local
777 if (folio && !xa_is_value(folio)) in readahead_expand()
780 folio = ractl_alloc_folio(ractl, gfp_mask, min_order); in readahead_expand()
781 if (!folio) in readahead_expand()
785 if (filemap_add_folio(mapping, folio, index, gfp_mask) < 0) { in readahead_expand()
786 folio_put(folio); in readahead_expand()
789 if (unlikely(folio_test_workingset(folio)) && in readahead_expand()
795 ractl->_index = folio->index; in readahead_expand()
804 struct folio *folio = xa_load(&mapping->i_pages, index); in readahead_expand() local
806 if (folio && !xa_is_value(folio)) in readahead_expand()
809 folio = ractl_alloc_folio(ractl, gfp_mask, min_order); in readahead_expand()
810 if (!folio) in readahead_expand()
814 if (filemap_add_folio(mapping, folio, index, gfp_mask) < 0) { in readahead_expand()
815 folio_put(folio); in readahead_expand()
818 if (unlikely(folio_test_workingset(folio)) && in readahead_expand()