]> git.hungrycats.org Git - linux/commitdiff
[PATCH] rmap 37 page_add_anon_rmap vma
authorAndrew Morton <akpm@osdl.org>
Sat, 22 May 2004 15:09:49 +0000 (08:09 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 22 May 2004 15:09:49 +0000 (08:09 -0700)
From: Hugh Dickins <hugh@veritas.com>

Silly final patch for anonmm rmap: change page_add_anon_rmap's mm arg to vma
arg like anon_vma rmap, to smooth the transition between them.

fs/exec.c
include/linux/rmap.h
mm/memory.c
mm/rmap.c
mm/swapfile.c

index 7e0ddac24203fb69a92c9a975881bf0eac26a83b..aa42fafaa7d33728f9a771003c20d108c5b24642 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -321,7 +321,7 @@ void install_arg_page(struct vm_area_struct *vma,
        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);
 
index 0194bb480e98dfe1530db98157406df303c48f1e..13e896e984aa9ffa168279c475f849df39882eca 100644 (file)
 
 #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 *);
 
index 7e77374e4b8cb5c9ffd1b308778acad3727b1676..d03092ad5bce460adb746f658883b18822fae647 100644 (file)
@@ -1088,7 +1088,7 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct * vma,
                        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;
@@ -1366,7 +1366,7 @@ static int do_swap_page(struct mm_struct * mm,
 
        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,
@@ -1425,7 +1425,7 @@ do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
                                      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);
@@ -1532,7 +1532,7 @@ retry:
                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);
index 6573c9d94b45f6bbfa060550d0f6c1c72a193d7d..2b2e32620a0c9c4ba4810fb54449635b63e512e9 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -365,15 +365,15 @@ int page_referenced(struct page *page)
 /**
  * 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));
 
index e5f7e8829aa8added347d49b91951f39cd9a4191..ce15af5ebc1216295826186d8866f63e0003ceb7 100644 (file)
@@ -433,7 +433,7 @@ unuse_pte(struct vm_area_struct *vma, unsigned long address, pte_t *dir,
        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);
 }