• Home
  • Raw
  • Download

Lines Matching refs:page

31 #define tag_compressed_page_justfound(page) \  argument
32 tagptr_fold(compressed_page_t, page, 1)
136 struct page **compressedpages;
161 static struct page *z_pagemap_global[Z_EROFS_VMAP_GLOBAL_PAGES];
171 struct page **pages = clt->compressedpages; in preload_compressed_pages()
179 struct page *page; in preload_compressed_pages() local
186 page = find_get_page(mc, index); in preload_compressed_pages()
188 if (page) { in preload_compressed_pages()
189 t = tag_compressed_page_justfound(page); in preload_compressed_pages()
202 if (page) in preload_compressed_pages()
203 put_page(page); in preload_compressed_pages()
225 struct page *page = pcl->compressed_pages[i]; in erofs_try_to_free_all_cached_pages() local
227 if (!page) in erofs_try_to_free_all_cached_pages()
231 if (!trylock_page(page)) in erofs_try_to_free_all_cached_pages()
234 if (page->mapping != mapping) in erofs_try_to_free_all_cached_pages()
239 set_page_private(page, 0); in erofs_try_to_free_all_cached_pages()
240 ClearPagePrivate(page); in erofs_try_to_free_all_cached_pages()
242 unlock_page(page); in erofs_try_to_free_all_cached_pages()
243 put_page(page); in erofs_try_to_free_all_cached_pages()
249 struct page *page) in erofs_try_to_free_cached_page() argument
251 struct z_erofs_pcluster *const pcl = (void *)page_private(page); in erofs_try_to_free_cached_page()
259 if (pcl->compressed_pages[i] == page) { in erofs_try_to_free_cached_page()
268 ClearPagePrivate(page); in erofs_try_to_free_cached_page()
269 put_page(page); in erofs_try_to_free_cached_page()
277 struct page *page) in z_erofs_try_inplace_io() argument
283 if (!cmpxchg(clt->compressedpages++, NULL, page)) in z_erofs_try_inplace_io()
291 struct page *page, in z_erofs_attach_page() argument
300 z_erofs_try_inplace_io(clt, page)) in z_erofs_attach_page()
304 page, type, &occupied); in z_erofs_attach_page()
546 static inline struct page *__stagingpage_alloc(struct list_head *pagepool, in __stagingpage_alloc()
549 struct page *page = erofs_allocpage(pagepool, gfp, true); in __stagingpage_alloc() local
551 page->mapping = Z_EROFS_MAPPING_STAGING; in __stagingpage_alloc()
552 return page; in __stagingpage_alloc()
570 struct page *page, in z_erofs_do_read_page() argument
577 const loff_t offset = page_offset(page); in z_erofs_do_read_page()
586 z_erofs_onlinepage_init(page); in z_erofs_do_read_page()
643 zero_user_segment(page, cur, end); in z_erofs_do_read_page()
657 err = z_erofs_attach_page(clt, page, page_type); in z_erofs_do_read_page()
660 struct page *const newpage = in z_erofs_do_read_page()
672 index = page->index - (map->m_la >> PAGE_SHIFT); in z_erofs_do_read_page()
674 z_erofs_onlinepage_fixup(page, index, true); in z_erofs_do_read_page()
689 z_erofs_onlinepage_endio(page); in z_erofs_do_read_page()
692 __func__, page, spiltted, map->m_llen); in z_erofs_do_read_page()
697 SetPageError(page); in z_erofs_do_read_page()
729 struct page *page = bvec->bv_page; in z_erofs_vle_read_endio() local
732 DBG_BUGON(PageUptodate(page)); in z_erofs_vle_read_endio()
733 DBG_BUGON(!page->mapping); in z_erofs_vle_read_endio()
735 if (!sbi && !z_erofs_page_is_staging(page)) in z_erofs_vle_read_endio()
736 sbi = EROFS_SB(page->mapping->host->i_sb); in z_erofs_vle_read_endio()
740 cachemngd = erofs_page_is_managed(sbi, page); in z_erofs_vle_read_endio()
743 SetPageError(page); in z_erofs_vle_read_endio()
745 SetPageUptodate(page); in z_erofs_vle_read_endio()
748 unlock_page(page); in z_erofs_vle_read_endio()
763 struct page *pages_onstack[Z_EROFS_VMAP_ONSTACK_PAGES]; in z_erofs_decompress_pcluster()
764 struct page **pages, **compressed_pages, *page; in z_erofs_decompress_pcluster() local
789 pages = kvmalloc_array(nr_pages, sizeof(struct page *), in z_erofs_decompress_pcluster()
809 page = z_erofs_pagevec_dequeue(&ctor, &page_type); in z_erofs_decompress_pcluster()
812 DBG_BUGON(!page); in z_erofs_decompress_pcluster()
813 DBG_BUGON(!page->mapping); in z_erofs_decompress_pcluster()
815 if (z_erofs_put_stagingpage(pagepool, page)) in z_erofs_decompress_pcluster()
821 pagenr = z_erofs_onlinepage_index(page); in z_erofs_decompress_pcluster()
835 pages[pagenr] = page; in z_erofs_decompress_pcluster()
845 page = compressed_pages[i]; in z_erofs_decompress_pcluster()
848 DBG_BUGON(!page); in z_erofs_decompress_pcluster()
849 DBG_BUGON(!page->mapping); in z_erofs_decompress_pcluster()
851 if (!z_erofs_page_is_staging(page)) { in z_erofs_decompress_pcluster()
852 if (erofs_page_is_managed(sbi, page)) { in z_erofs_decompress_pcluster()
853 if (!PageUptodate(page)) in z_erofs_decompress_pcluster()
862 pagenr = z_erofs_onlinepage_index(page); in z_erofs_decompress_pcluster()
871 pages[pagenr] = page; in z_erofs_decompress_pcluster()
877 if (PageError(page)) { in z_erofs_decompress_pcluster()
878 DBG_BUGON(PageUptodate(page)); in z_erofs_decompress_pcluster()
910 page = compressed_pages[i]; in z_erofs_decompress_pcluster()
912 if (erofs_page_is_managed(sbi, page)) in z_erofs_decompress_pcluster()
916 (void)z_erofs_put_stagingpage(pagepool, page); in z_erofs_decompress_pcluster()
922 page = pages[i]; in z_erofs_decompress_pcluster()
923 if (!page) in z_erofs_decompress_pcluster()
926 DBG_BUGON(!page->mapping); in z_erofs_decompress_pcluster()
929 if (z_erofs_put_stagingpage(pagepool, page)) in z_erofs_decompress_pcluster()
933 SetPageError(page); in z_erofs_decompress_pcluster()
935 z_erofs_onlinepage_endio(page); in z_erofs_decompress_pcluster()
991 static struct page *pickup_page_for_submission(struct z_erofs_pcluster *pcl, in pickup_page_for_submission()
1003 struct page *oldpage, *page; in pickup_page_for_submission() local
1009 page = READ_ONCE(pcl->compressed_pages[nr]); in pickup_page_for_submission()
1010 oldpage = page; in pickup_page_for_submission()
1012 if (!page) in pickup_page_for_submission()
1019 if (!nocache && page == PAGE_UNALLOCATED) { in pickup_page_for_submission()
1025 t = tagptr_init(compressed_page_t, page); in pickup_page_for_submission()
1027 page = tagptr_unfold_ptr(t); in pickup_page_for_submission()
1029 mapping = READ_ONCE(page->mapping); in pickup_page_for_submission()
1040 DBG_BUGON(!PageLocked(page)); in pickup_page_for_submission()
1041 DBG_BUGON(PageUptodate(page)); in pickup_page_for_submission()
1054 lock_page(page); in pickup_page_for_submission()
1057 DBG_BUGON(justfound && PagePrivate(page)); in pickup_page_for_submission()
1060 if (page->mapping == mc) { in pickup_page_for_submission()
1061 WRITE_ONCE(pcl->compressed_pages[nr], page); in pickup_page_for_submission()
1063 ClearPageError(page); in pickup_page_for_submission()
1064 if (!PagePrivate(page)) { in pickup_page_for_submission()
1073 set_page_private(page, (unsigned long)pcl); in pickup_page_for_submission()
1074 SetPagePrivate(page); in pickup_page_for_submission()
1078 if (PageUptodate(page)) { in pickup_page_for_submission()
1079 unlock_page(page); in pickup_page_for_submission()
1080 page = NULL; in pickup_page_for_submission()
1089 DBG_BUGON(page->mapping); in pickup_page_for_submission()
1093 unlock_page(page); in pickup_page_for_submission()
1094 put_page(page); in pickup_page_for_submission()
1096 page = __stagingpage_alloc(pagepool, gfp); in pickup_page_for_submission()
1097 if (oldpage != cmpxchg(&pcl->compressed_pages[nr], oldpage, page)) { in pickup_page_for_submission()
1098 list_add(&page->lru, pagepool); in pickup_page_for_submission()
1104 if (add_to_page_cache_lru(page, mc, index + nr, gfp)) { in pickup_page_for_submission()
1105 page->mapping = Z_EROFS_MAPPING_STAGING; in pickup_page_for_submission()
1109 set_page_private(page, (unsigned long)pcl); in pickup_page_for_submission()
1110 SetPagePrivate(page); in pickup_page_for_submission()
1112 return page; in pickup_page_for_submission()
1233 struct page *page; in z_erofs_vle_submit_all() local
1253 page = pickup_page_for_submission(pcl, i, pagepool, in z_erofs_vle_submit_all()
1256 if (!page) { in z_erofs_vle_submit_all()
1281 err = bio_add_page(bio, page, PAGE_SIZE, 0); in z_erofs_vle_submit_all()
1333 struct page *page) in z_erofs_vle_normalaccess_readpage() argument
1335 struct inode *const inode = page->mapping->host; in z_erofs_vle_normalaccess_readpage()
1340 trace_erofs_readpage(page, false); in z_erofs_vle_normalaccess_readpage()
1342 f.headoffset = (erofs_off_t)page->index << PAGE_SHIFT; in z_erofs_vle_normalaccess_readpage()
1344 err = z_erofs_do_read_page(&f, page, &pagepool); in z_erofs_vle_normalaccess_readpage()
1378 struct page *head = NULL; in z_erofs_vle_normalaccess_readpages()
1387 struct page *page = lru_to_page(pages); in z_erofs_vle_normalaccess_readpages() local
1389 prefetchw(&page->flags); in z_erofs_vle_normalaccess_readpages()
1390 list_del(&page->lru); in z_erofs_vle_normalaccess_readpages()
1397 sync &= !(PageReadahead(page) && !head); in z_erofs_vle_normalaccess_readpages()
1399 if (add_to_page_cache_lru(page, mapping, page->index, gfp)) { in z_erofs_vle_normalaccess_readpages()
1400 list_add(&page->lru, &pagepool); in z_erofs_vle_normalaccess_readpages()
1404 set_page_private(page, (unsigned long)head); in z_erofs_vle_normalaccess_readpages()
1405 head = page; in z_erofs_vle_normalaccess_readpages()
1409 struct page *page = head; in z_erofs_vle_normalaccess_readpages() local
1413 head = (void *)page_private(page); in z_erofs_vle_normalaccess_readpages()
1415 err = z_erofs_do_read_page(&f, page, &pagepool); in z_erofs_vle_normalaccess_readpages()
1419 page->index, EROFS_I(inode)->nid); in z_erofs_vle_normalaccess_readpages()
1420 put_page(page); in z_erofs_vle_normalaccess_readpages()