mm/vmscan: protect the workingset on anonymous LRU
[sfrench/cifs-2.6.git] / mm / vmscan.c
index e34fc04b7045c1e9cd23818d2ee66f041a2602dc..783cd7fdc61a34aef3f468b5701192aa1c7e2e8b 100644 (file)
@@ -998,8 +998,6 @@ static enum page_references page_check_references(struct page *page,
                return PAGEREF_RECLAIM;
 
        if (referenced_ptes) {
-               if (PageSwapBacked(page))
-                       return PAGEREF_ACTIVATE;
                /*
                 * All mapped pages start out with page table
                 * references from the instantiating fault, so we need
@@ -1022,7 +1020,7 @@ static enum page_references page_check_references(struct page *page,
                /*
                 * Activate file-backed executable pages after first usage.
                 */
-               if (vm_flags & VM_EXEC)
+               if ((vm_flags & VM_EXEC) && !PageSwapBacked(page))
                        return PAGEREF_ACTIVATE;
 
                return PAGEREF_KEEP;