From f978f40bbea7aace88e6482219ecdf8a8166a3f0 Mon Sep 17 00:00:00 2001 From: Abhijit Karmarkar Date: Tue, 21 Jun 2005 17:15:13 -0700 Subject: [PATCH] --- yaml --- r: 2470 b: refs/heads/master c: b4955ce3dd0818b56da532a16c9a4a3804a558ee h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/asm-generic/pgtable.h | 3 +++ trunk/mm/msync.c | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 537b4cdfdffb..4d7e7042eca1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c475a8ab625d567eacf5e30ec35d6d8704558062 +refs/heads/master: b4955ce3dd0818b56da532a16c9a4a3804a558ee diff --git a/trunk/include/asm-generic/pgtable.h b/trunk/include/asm-generic/pgtable.h index 1f4ec7b70270..f40593565173 100644 --- a/trunk/include/asm-generic/pgtable.h +++ b/trunk/include/asm-generic/pgtable.h @@ -125,6 +125,9 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres #ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY #define page_test_and_clear_dirty(page) (0) +#define pte_maybe_dirty(pte) pte_dirty(pte) +#else +#define pte_maybe_dirty(pte) (1) #endif #ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_YOUNG diff --git a/trunk/mm/msync.c b/trunk/mm/msync.c index 090f426bca7d..d0f5a1bce7cb 100644 --- a/trunk/mm/msync.c +++ b/trunk/mm/msync.c @@ -34,6 +34,8 @@ static void sync_pte_range(struct vm_area_struct *vma, pmd_t *pmd, if (!pte_present(*pte)) continue; + if (!pte_maybe_dirty(*pte)) + continue; pfn = pte_pfn(*pte); if (!pfn_valid(pfn)) continue;