Index: linux-2.6.15-rc2/mm/rmap.c =================================================================== --- linux-2.6.15-rc2.orig/mm/rmap.c 2005-11-20 03:25:03.000000000 +0000 +++ linux-2.6.15-rc2/mm/rmap.c 2005-11-22 21:51:31.000000000 +0000 @@ -460,6 +460,7 @@ void page_add_anon_rmap(struct page *pag page->index = linear_page_index(vma, address); inc_page_state(nr_mapped); + pagecache_acct(-1, page); } /* else checking page index and mapping is racy */ } @@ -475,8 +476,10 @@ void page_add_file_rmap(struct page *pag BUG_ON(PageAnon(page)); BUG_ON(!pfn_valid(page_to_pfn(page))); - if (atomic_inc_and_test(&page->_mapcount)) + if (atomic_inc_and_test(&page->_mapcount)) { inc_page_state(nr_mapped); + pagecache_acct(-1, page); + } } /** @@ -501,6 +504,7 @@ void page_remove_rmap(struct page *page) if (page_test_and_clear_dirty(page)) set_page_dirty(page); dec_page_state(nr_mapped); + pagecache_acct(1, page); } }