Lines Matching refs:page

80 		struct page *page = pvec->pages[i];  in truncate_exceptional_pvec_entries()  local
83 if (!xa_is_value(page)) { in truncate_exceptional_pvec_entries()
84 pvec->pages[j++] = page; in truncate_exceptional_pvec_entries()
93 __clear_shadow_entry(mapping, index, page); in truncate_exceptional_pvec_entries()
146 void do_invalidatepage(struct page *page, unsigned int offset, in do_invalidatepage() argument
149 void (*invalidatepage)(struct page *, unsigned int, unsigned int); in do_invalidatepage()
151 invalidatepage = page->mapping->a_ops->invalidatepage; in do_invalidatepage()
157 (*invalidatepage)(page, offset, length); in do_invalidatepage()
170 static void truncate_cleanup_page(struct page *page) in truncate_cleanup_page() argument
172 if (page_mapped(page)) in truncate_cleanup_page()
173 unmap_mapping_page(page); in truncate_cleanup_page()
175 if (page_has_private(page)) in truncate_cleanup_page()
176 do_invalidatepage(page, 0, thp_size(page)); in truncate_cleanup_page()
183 cancel_dirty_page(page); in truncate_cleanup_page()
184 ClearPageMappedToDisk(page); in truncate_cleanup_page()
196 invalidate_complete_page(struct address_space *mapping, struct page *page) in invalidate_complete_page() argument
200 if (page->mapping != mapping) in invalidate_complete_page()
203 if (page_has_private(page) && !try_to_release_page(page, 0)) in invalidate_complete_page()
206 ret = remove_mapping(mapping, page); in invalidate_complete_page()
211 int truncate_inode_page(struct address_space *mapping, struct page *page) in truncate_inode_page() argument
213 VM_BUG_ON_PAGE(PageTail(page), page); in truncate_inode_page()
215 if (page->mapping != mapping) in truncate_inode_page()
218 truncate_cleanup_page(page); in truncate_inode_page()
219 delete_from_page_cache(page); in truncate_inode_page()
226 int generic_error_remove_page(struct address_space *mapping, struct page *page) in generic_error_remove_page() argument
236 return truncate_inode_page(mapping, page); in generic_error_remove_page()
246 int invalidate_inode_page(struct page *page) in invalidate_inode_page() argument
248 struct address_space *mapping = page_mapping(page); in invalidate_inode_page()
251 if (PageDirty(page) || PageWriteback(page)) in invalidate_inode_page()
253 if (page_mapped(page)) in invalidate_inode_page()
255 return invalidate_complete_page(mapping, page); in invalidate_inode_page()
334 struct page *page = find_lock_page(mapping, start - 1); in truncate_inode_pages_range() local
335 if (page) { in truncate_inode_pages_range()
342 wait_on_page_writeback(page); in truncate_inode_pages_range()
343 zero_user_segment(page, partial_start, top); in truncate_inode_pages_range()
344 cleancache_invalidate_page(mapping, page); in truncate_inode_pages_range()
345 if (page_has_private(page)) in truncate_inode_pages_range()
346 do_invalidatepage(page, partial_start, in truncate_inode_pages_range()
348 unlock_page(page); in truncate_inode_pages_range()
349 put_page(page); in truncate_inode_pages_range()
353 struct page *page = find_lock_page(mapping, end); in truncate_inode_pages_range() local
354 if (page) { in truncate_inode_pages_range()
355 wait_on_page_writeback(page); in truncate_inode_pages_range()
356 zero_user_segment(page, 0, partial_end); in truncate_inode_pages_range()
357 cleancache_invalidate_page(mapping, page); in truncate_inode_pages_range()
358 if (page_has_private(page)) in truncate_inode_pages_range()
359 do_invalidatepage(page, 0, in truncate_inode_pages_range()
361 unlock_page(page); in truncate_inode_pages_range()
362 put_page(page); in truncate_inode_pages_range()
386 struct page *page = pvec.pages[i]; in truncate_inode_pages_range() local
391 if (xa_is_value(page)) in truncate_inode_pages_range()
394 lock_page(page); in truncate_inode_pages_range()
395 WARN_ON(page_to_index(page) != index); in truncate_inode_pages_range()
396 wait_on_page_writeback(page); in truncate_inode_pages_range()
397 truncate_inode_page(mapping, page); in truncate_inode_pages_range()
398 unlock_page(page); in truncate_inode_pages_range()
481 struct page *page = pvec.pages[i]; in __invalidate_mapping_pages() local
486 if (xa_is_value(page)) { in __invalidate_mapping_pages()
489 page); in __invalidate_mapping_pages()
492 index += thp_nr_pages(page) - 1; in __invalidate_mapping_pages()
494 ret = invalidate_inode_page(page); in __invalidate_mapping_pages()
495 unlock_page(page); in __invalidate_mapping_pages()
501 deactivate_file_page(page); in __invalidate_mapping_pages()
562 invalidate_complete_page2(struct address_space *mapping, struct page *page) in invalidate_complete_page2() argument
564 if (page->mapping != mapping) in invalidate_complete_page2()
567 if (page_has_private(page) && !try_to_release_page(page, GFP_KERNEL)) in invalidate_complete_page2()
571 if (PageDirty(page)) in invalidate_complete_page2()
574 BUG_ON(page_has_private(page)); in invalidate_complete_page2()
575 __delete_from_page_cache(page, NULL); in invalidate_complete_page2()
579 mapping->a_ops->freepage(page); in invalidate_complete_page2()
581 put_page(page); /* pagecache ref */ in invalidate_complete_page2()
588 static int do_launder_page(struct address_space *mapping, struct page *page) in do_launder_page() argument
590 if (!PageDirty(page)) in do_launder_page()
592 if (page->mapping != mapping || mapping->a_ops->launder_page == NULL) in do_launder_page()
594 return mapping->a_ops->launder_page(page); in do_launder_page()
626 struct page *page = pvec.pages[i]; in invalidate_inode_pages2_range() local
631 if (xa_is_value(page)) { in invalidate_inode_pages2_range()
633 index, page)) in invalidate_inode_pages2_range()
638 if (!did_range_unmap && page_mapped(page)) { in invalidate_inode_pages2_range()
648 lock_page(page); in invalidate_inode_pages2_range()
649 WARN_ON(page_to_index(page) != index); in invalidate_inode_pages2_range()
650 if (page->mapping != mapping) { in invalidate_inode_pages2_range()
651 unlock_page(page); in invalidate_inode_pages2_range()
654 wait_on_page_writeback(page); in invalidate_inode_pages2_range()
656 if (page_mapped(page)) in invalidate_inode_pages2_range()
657 unmap_mapping_page(page); in invalidate_inode_pages2_range()
658 BUG_ON(page_mapped(page)); in invalidate_inode_pages2_range()
660 ret2 = do_launder_page(mapping, page); in invalidate_inode_pages2_range()
662 if (!invalidate_complete_page2(mapping, page)) in invalidate_inode_pages2_range()
667 unlock_page(page); in invalidate_inode_pages2_range()
787 struct page *page; in pagecache_isize_extended() local
800 page = find_lock_page(inode->i_mapping, index); in pagecache_isize_extended()
802 if (!page) in pagecache_isize_extended()
808 if (page_mkclean(page)) in pagecache_isize_extended()
809 set_page_dirty(page); in pagecache_isize_extended()
810 unlock_page(page); in pagecache_isize_extended()
811 put_page(page); in pagecache_isize_extended()