This commit was manufactured by cvs2svn to create branch
[linux-2.6.git] / mm / rmap.c
index 254cf12..d226b69 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -30,6 +30,7 @@
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/rmap.h>
+#include <linux/vs_memory.h>
 
 #include <asm/tlbflush.h>
 
@@ -230,6 +231,9 @@ static int page_referenced_one(struct page *page,
        if (ptep_clear_flush_young(vma, address, pte))
                referenced++;
 
+       if (mm != current->mm && has_swap_token(mm))
+               referenced++;
+
        (*mapcount)--;
 
 out_unmap:
@@ -512,7 +516,8 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma)
                BUG_ON(pte_file(*pte));
        }
 
-       mm->rss--;
+       // mm->rss--;
+       vx_rsspages_dec(mm);
        BUG_ON(!page->mapcount);
        page->mapcount--;
        page_cache_release(page);
@@ -614,7 +619,8 @@ static int try_to_unmap_cluster(unsigned long cursor,
 
                page_remove_rmap(page);
                page_cache_release(page);
-               mm->rss--;
+               // mm->rss--;
+               vx_rsspages_dec(mm);
                (*mapcount)--;
        }