From: Nick Piggin <nickpiggin@yahoo.com.au>

Thanks to Bill Irwin for pointing this out.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 mm/rmap.c |    6 +-----
 1 files changed, 1 insertion(+), 5 deletions(-)

diff -puN mm/rmap.c~mm-cleanup-rmap mm/rmap.c
--- 25/mm/rmap.c~mm-cleanup-rmap	Tue Jul 26 13:29:16 2005
+++ 25-akpm/mm/rmap.c	Tue Jul 26 13:29:16 2005
@@ -449,16 +449,12 @@ void page_add_anon_rmap(struct page *pag
 
 	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);
 	}
_