[PATCH] mm: cleanup rmap
authorNick Piggin <nickpiggin@yahoo.com.au>
Sat, 3 Sep 2005 22:54:48 +0000 (15:54 -0700)
committerLinus Torvalds <torvalds@evo.osdl.org>
Mon, 5 Sep 2005 07:05:43 +0000 (00:05 -0700)
Thanks to Bill Irwin for pointing this out.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/rmap.c

index 7e975ca24c788334b6d266443c1de2b823636bdb..450f5241b5a525282ae7eb150fe322423b01e570 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -445,16 +445,12 @@ void page_add_anon_rmap(struct page *page,
 
        if (atomic_inc_and_test(&page->_mapcount)) {
                struct anon_vma *anon_vma = vma->anon_vma;
-               pgoff_t index;
 
                BUG_ON(!anon_vma);
                anon_vma = (void *) anon_vma + PAGE_MAPPING_ANON;
                page->mapping = (struct address_space *) anon_vma;
 
-               index = (address - vma->vm_start) >> PAGE_SHIFT;
-               index += vma->vm_pgoff;
-               index >>= PAGE_CACHE_SHIFT - PAGE_SHIFT;
-               page->index = index;
+               page->index = linear_page_index(vma, address);
 
                inc_page_state(nr_mapped);
        }