Lines Matching refs:newpage
440 struct page *newpage, struct page *page, in migrate_page_move_mapping() argument
462 newpage->index = page->index; in migrate_page_move_mapping()
463 newpage->mapping = page->mapping; in migrate_page_move_mapping()
465 __SetPageSwapBacked(newpage); in migrate_page_move_mapping()
471 newzone = page_zone(newpage); in migrate_page_move_mapping()
509 newpage->index = page->index; in migrate_page_move_mapping()
510 newpage->mapping = page->mapping; in migrate_page_move_mapping()
511 page_ref_add(newpage, hpage_nr_pages(page)); /* add cache reference */ in migrate_page_move_mapping()
513 __SetPageSwapBacked(newpage); in migrate_page_move_mapping()
515 SetPageSwapCache(newpage); in migrate_page_move_mapping()
516 set_page_private(newpage, page_private(page)); in migrate_page_move_mapping()
526 SetPageDirty(newpage); in migrate_page_move_mapping()
529 radix_tree_replace_slot(&mapping->i_pages, pslot, newpage); in migrate_page_move_mapping()
538 newpage + i); in migrate_page_move_mapping()
587 struct page *newpage, struct page *page) in migrate_huge_page_move_mapping() argument
608 newpage->index = page->index; in migrate_huge_page_move_mapping()
609 newpage->mapping = page->mapping; in migrate_huge_page_move_mapping()
611 get_page(newpage); in migrate_huge_page_move_mapping()
613 radix_tree_replace_slot(&mapping->i_pages, pslot, newpage); in migrate_huge_page_move_mapping()
673 void migrate_page_states(struct page *newpage, struct page *page) in migrate_page_states() argument
678 SetPageError(newpage); in migrate_page_states()
680 SetPageReferenced(newpage); in migrate_page_states()
682 SetPageUptodate(newpage); in migrate_page_states()
685 SetPageActive(newpage); in migrate_page_states()
687 SetPageUnevictable(newpage); in migrate_page_states()
689 SetPageChecked(newpage); in migrate_page_states()
691 SetPageMappedToDisk(newpage); in migrate_page_states()
695 SetPageDirty(newpage); in migrate_page_states()
698 set_page_young(newpage); in migrate_page_states()
700 set_page_idle(newpage); in migrate_page_states()
707 page_cpupid_xchg_last(newpage, cpupid); in migrate_page_states()
709 ksm_migrate_page(newpage, page); in migrate_page_states()
723 if (PageWriteback(newpage)) in migrate_page_states()
724 end_page_writeback(newpage); in migrate_page_states()
726 copy_page_owner(page, newpage); in migrate_page_states()
728 mem_cgroup_migrate(page, newpage); in migrate_page_states()
732 void migrate_page_copy(struct page *newpage, struct page *page) in migrate_page_copy() argument
735 copy_huge_page(newpage, page); in migrate_page_copy()
737 copy_highpage(newpage, page); in migrate_page_copy()
739 migrate_page_states(newpage, page); in migrate_page_copy()
754 struct page *newpage, struct page *page, in migrate_page() argument
761 rc = migrate_page_move_mapping(mapping, newpage, page, NULL, mode, 0); in migrate_page()
767 migrate_page_copy(newpage, page); in migrate_page()
769 migrate_page_states(newpage, page); in migrate_page()
781 struct page *newpage, struct page *page, enum migrate_mode mode) in buffer_migrate_page() argument
787 return migrate_page(mapping, newpage, page, mode); in buffer_migrate_page()
791 rc = migrate_page_move_mapping(mapping, newpage, page, head, mode, 0); in buffer_migrate_page()
805 set_page_private(newpage, page_private(page)); in buffer_migrate_page()
808 get_page(newpage); in buffer_migrate_page()
812 set_bh_page(bh, newpage, bh_offset(bh)); in buffer_migrate_page()
817 SetPagePrivate(newpage); in buffer_migrate_page()
820 migrate_page_copy(newpage, page); in buffer_migrate_page()
822 migrate_page_states(newpage, page); in buffer_migrate_page()
882 struct page *newpage, struct page *page, enum migrate_mode mode) in fallback_migrate_page() argument
904 return migrate_page(mapping, newpage, page, mode); in fallback_migrate_page()
918 static int move_to_new_page(struct page *newpage, struct page *page, in move_to_new_page() argument
926 VM_BUG_ON_PAGE(!PageLocked(newpage), newpage); in move_to_new_page()
932 rc = migrate_page(mapping, newpage, page, mode); in move_to_new_page()
941 rc = mapping->a_ops->migratepage(mapping, newpage, in move_to_new_page()
944 rc = fallback_migrate_page(mapping, newpage, in move_to_new_page()
958 rc = mapping->a_ops->migratepage(mapping, newpage, in move_to_new_page()
991 static int __unmap_and_move(struct page *page, struct page *newpage, in __unmap_and_move() argument
1067 if (unlikely(!trylock_page(newpage))) in __unmap_and_move()
1071 rc = move_to_new_page(newpage, page, mode); in __unmap_and_move()
1103 rc = move_to_new_page(newpage, page, mode); in __unmap_and_move()
1107 rc == MIGRATEPAGE_SUCCESS ? newpage : page, false); in __unmap_and_move()
1110 unlock_page(newpage); in __unmap_and_move()
1124 if (unlikely(__PageMovable(newpage))) in __unmap_and_move()
1125 put_page(newpage); in __unmap_and_move()
1127 putback_lru_page(newpage); in __unmap_and_move()
1155 struct page *newpage; in unmap_and_move() local
1160 newpage = get_new_page(page, private); in unmap_and_move()
1161 if (!newpage) in unmap_and_move()
1175 put_new_page(newpage, private); in unmap_and_move()
1177 put_page(newpage); in unmap_and_move()
1181 rc = __unmap_and_move(page, newpage, force, mode); in unmap_and_move()
1183 set_page_owner_migrate_reason(newpage, reason); in unmap_and_move()
1238 put_new_page(newpage, private); in unmap_and_move()
1240 put_page(newpage); in unmap_and_move()
1850 struct page *newpage; in alloc_misplaced_dst_page() local
1852 newpage = __alloc_pages_node(nid, in alloc_misplaced_dst_page()
1858 return newpage; in alloc_misplaced_dst_page()
2716 struct page *newpage = migrate_pfn_to_page(migrate->dst[i]); in migrate_vma_pages() local
2721 if (!newpage) { in migrate_vma_pages()
2737 migrate_vma_insert_page(migrate, addr, newpage, in migrate_vma_pages()
2745 if (is_zone_device_page(newpage)) { in migrate_vma_pages()
2746 if (is_device_private_page(newpage)) { in migrate_vma_pages()
2755 } else if (!is_device_public_page(newpage)) { in migrate_vma_pages()
2765 r = migrate_page(mapping, newpage, page, MIGRATE_SYNC_NO_COPY); in migrate_vma_pages()
2797 struct page *newpage = migrate_pfn_to_page(migrate->dst[i]); in migrate_vma_finalize() local
2801 if (newpage) { in migrate_vma_finalize()
2802 unlock_page(newpage); in migrate_vma_finalize()
2803 put_page(newpage); in migrate_vma_finalize()
2808 if (!(migrate->src[i] & MIGRATE_PFN_MIGRATE) || !newpage) { in migrate_vma_finalize()
2809 if (newpage) { in migrate_vma_finalize()
2810 unlock_page(newpage); in migrate_vma_finalize()
2811 put_page(newpage); in migrate_vma_finalize()
2813 newpage = page; in migrate_vma_finalize()
2816 remove_migration_ptes(page, newpage, false); in migrate_vma_finalize()
2825 if (newpage != page) { in migrate_vma_finalize()
2826 unlock_page(newpage); in migrate_vma_finalize()
2827 if (is_zone_device_page(newpage)) in migrate_vma_finalize()
2828 put_page(newpage); in migrate_vma_finalize()
2830 putback_lru_page(newpage); in migrate_vma_finalize()