Lines Matching refs:mapping

312 int migrate_page_move_mapping(struct address_space *mapping,  in migrate_page_move_mapping()  argument
322 if (!mapping) { in migrate_page_move_mapping()
330 newpage->mapping = page->mapping; in migrate_page_move_mapping()
340 spin_lock_irq(&mapping->tree_lock); in migrate_page_move_mapping()
342 pslot = radix_tree_lookup_slot(&mapping->page_tree, in migrate_page_move_mapping()
347 radix_tree_deref_slot_protected(pslot, &mapping->tree_lock) != page) { in migrate_page_move_mapping()
348 spin_unlock_irq(&mapping->tree_lock); in migrate_page_move_mapping()
353 spin_unlock_irq(&mapping->tree_lock); in migrate_page_move_mapping()
367 spin_unlock_irq(&mapping->tree_lock); in migrate_page_move_mapping()
377 newpage->mapping = page->mapping; in migrate_page_move_mapping()
403 spin_unlock(&mapping->tree_lock); in migrate_page_move_mapping()
423 if (dirty && mapping_cap_account_dirty(mapping)) { in migrate_page_move_mapping()
437 int migrate_huge_page_move_mapping(struct address_space *mapping, in migrate_huge_page_move_mapping() argument
443 spin_lock_irq(&mapping->tree_lock); in migrate_huge_page_move_mapping()
445 pslot = radix_tree_lookup_slot(&mapping->page_tree, in migrate_huge_page_move_mapping()
450 radix_tree_deref_slot_protected(pslot, &mapping->tree_lock) != page) { in migrate_huge_page_move_mapping()
451 spin_unlock_irq(&mapping->tree_lock); in migrate_huge_page_move_mapping()
456 spin_unlock_irq(&mapping->tree_lock); in migrate_huge_page_move_mapping()
462 newpage->mapping = page->mapping; in migrate_huge_page_move_mapping()
469 spin_unlock_irq(&mapping->tree_lock); in migrate_huge_page_move_mapping()
593 int migrate_page(struct address_space *mapping, in migrate_page() argument
601 rc = migrate_page_move_mapping(mapping, newpage, page, NULL, mode, 0); in migrate_page()
617 int buffer_migrate_page(struct address_space *mapping, in buffer_migrate_page() argument
624 return migrate_page(mapping, newpage, page, mode); in buffer_migrate_page()
628 rc = migrate_page_move_mapping(mapping, newpage, page, head, mode, 0); in buffer_migrate_page()
674 static int writeout(struct address_space *mapping, struct page *page) in writeout() argument
685 if (!mapping->a_ops->writepage) in writeout()
703 rc = mapping->a_ops->writepage(page, &wbc); in writeout()
715 static int fallback_migrate_page(struct address_space *mapping, in fallback_migrate_page() argument
722 return writeout(mapping, page); in fallback_migrate_page()
733 return migrate_page(mapping, newpage, page, mode); in fallback_migrate_page()
750 struct address_space *mapping; in move_to_new_page() local
756 mapping = page_mapping(page); in move_to_new_page()
757 if (!mapping) in move_to_new_page()
758 rc = migrate_page(mapping, newpage, page, mode); in move_to_new_page()
759 else if (mapping->a_ops->migratepage) in move_to_new_page()
766 rc = mapping->a_ops->migratepage(mapping, newpage, page, mode); in move_to_new_page()
768 rc = fallback_migrate_page(mapping, newpage, page, mode); in move_to_new_page()
777 page->mapping = NULL; in move_to_new_page()
880 if (!page->mapping) { in __unmap_and_move()
1780 new_page->mapping = page->mapping; in migrate_misplaced_transhuge_page()