lru_cache_add_active(page);
set_pte(pte, pte_mkdirty(pte_mkwrite(mk_pte(
page, vma->vm_page_prot))));
- page_add_anon_rmap(page, mm, address);
+ page_add_anon_rmap(page, vma, address);
pte_unmap(pte);
spin_unlock(&mm->page_table_lock);
#ifdef CONFIG_MMU
-void page_add_anon_rmap(struct page *, struct mm_struct *, unsigned long);
+/*
+ * rmap interfaces called when adding or removing pte of page
+ */
+void page_add_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
void page_add_file_rmap(struct page *);
void page_remove_rmap(struct page *);
page_remove_rmap(old_page);
break_cow(vma, new_page, address, page_table);
lru_cache_add_active(new_page);
- page_add_anon_rmap(new_page, mm, address);
+ page_add_anon_rmap(new_page, vma, address);
/* Free the old page.. */
new_page = old_page;
flush_icache_page(vma, page);
set_pte(page_table, pte);
- page_add_anon_rmap(page, mm, address);
+ page_add_anon_rmap(page, vma, address);
if (write_access || mremap_moved_anon_rmap(page, address)) {
if (do_wp_page(mm, vma, address,
vma);
lru_cache_add_active(page);
mark_page_accessed(page);
- page_add_anon_rmap(page, mm, addr);
+ page_add_anon_rmap(page, vma, addr);
}
set_pte(page_table, entry);
set_pte(page_table, entry);
if (anon) {
lru_cache_add_active(new_page);
- page_add_anon_rmap(new_page, mm, address);
+ page_add_anon_rmap(new_page, vma, address);
} else
page_add_file_rmap(new_page);
pte_unmap(page_table);
/**
* page_add_anon_rmap - add pte mapping to an anonymous page
* @page: the page to add the mapping to
- * @mm: the mm in which the mapping is added
+ * @vma: the vm area in which the mapping is added
* @address: the user virtual address mapped
*
* The caller needs to hold the mm->page_table_lock.
*/
void page_add_anon_rmap(struct page *page,
- struct mm_struct *mm, unsigned long address)
+ struct vm_area_struct *vma, unsigned long address)
{
- struct anonmm *anonmm = mm->anonmm;
+ struct anonmm *anonmm = vma->vm_mm->anonmm;
BUG_ON(PageReserved(page));
vma->vm_mm->rss++;
get_page(page);
set_pte(dir, pte_mkold(mk_pte(page, vma->vm_page_prot)));
- page_add_anon_rmap(page, vma->vm_mm, address);
+ page_add_anon_rmap(page, vma, address);
swap_free(entry);
}