--- 2.4.5pre1aa3/mm/filemap.c.~1~ Fri May 11 02:08:28 2001 +++ 2.4.5pre1aa3/mm/filemap.c Mon May 14 18:48:59 2001 @@ -1808,10 +1808,12 @@ { pte_t pte = *ptep; - if (pte_present(pte) && ptep_test_and_clear_dirty(ptep)) { + if (pte_present(pte)) { struct page *page = pte_page(pte); - flush_tlb_page(vma, address); - set_page_dirty(page); + if (VALID_PAGE(page) && !PageReserved(page) && ptep_test_and_clear_dirty(ptep)) { + flush_tlb_page(vma, address); + set_page_dirty(page); + } } return 0; }