]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - mm/rmap.c
[PATCH] mm: exit_mmap need not reset
[mv-sheeva.git] / mm / rmap.c
index 450f5241b5a525282ae7eb150fe322423b01e570..1fc559e09ca8c75793ff1dc1b5d6f8ddb7ee2abe 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -298,7 +298,11 @@ static int page_referenced_one(struct page *page,
                if (ptep_clear_flush_young(vma, address, pte))
                        referenced++;
 
-               if (mm != current->mm && !ignore_token && has_swap_token(mm))
+               /* Pretend the page is referenced if the task has the
+                  swap token and is in the middle of a page fault. */
+               if (mm != current->mm && !ignore_token &&
+                               has_swap_token(mm) &&
+                               rwsem_is_locked(&mm->mmap_sem))
                        referenced++;
 
                (*mapcount)--;