linux-2.6-npiggin/mm/filemap.c | 3 +-- linux-2.6-npiggin/mm/rmap.c | 2 +- linux-2.6-npiggin/mm/swap.c | 7 +------ 3 files changed, 3 insertions(+), 9 deletions(-) diff -puN mm/filemap.c~vm-dropbehind mm/filemap.c --- linux-2.6/mm/filemap.c~vm-dropbehind 2004-03-13 00:14:56.000000000 +1100 +++ linux-2.6-npiggin/mm/filemap.c 2004-03-13 00:55:17.000000000 +1100 @@ -662,8 +662,7 @@ page_ok: /* * Mark the page accessed if we read the beginning. */ - if (!offset) - mark_page_accessed(page); + mark_page_accessed(page); /* * Ok, we have the page, and it's up-to-date, so diff -puN mm/swap.c~vm-dropbehind mm/swap.c --- linux-2.6/mm/swap.c~vm-dropbehind 2004-03-13 00:17:29.000000000 +1100 +++ linux-2.6-npiggin/mm/swap.c 2004-03-13 00:18:11.000000000 +1100 @@ -111,13 +111,8 @@ void fastcall activate_page(struct page */ void fastcall mark_page_accessed(struct page *page) { - if (!PageActiveMapped(page) && !PageActiveUnmapped(page) - && PageReferenced(page) && PageLRU(page)) { - activate_page(page); - ClearPageReferenced(page); - } else if (!PageReferenced(page)) { + if (!PageReferenced(page)) SetPageReferenced(page); - } } EXPORT_SYMBOL(mark_page_accessed); diff -puN mm/rmap.c~vm-dropbehind mm/rmap.c --- linux-2.6/mm/rmap.c~vm-dropbehind 2004-03-13 01:08:00.000000000 +1100 +++ linux-2.6-npiggin/mm/rmap.c 2004-03-13 01:08:28.000000000 +1100 @@ -118,7 +118,7 @@ int fastcall page_referenced(struct page int referenced = 0; if (page_test_and_clear_young(page)) - mark_page_accessed(page); + referenced++; if (TestClearPageReferenced(page)) referenced++; _