]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - mm/vmscan.c
macvlan: Introduce 'passthru' mode to takeover the underlying device
[net-next-2.6.git] / mm / vmscan.c
index 30fd658bb2897076d4fec53a5b0435d095daaec6..d31d7ce52c0ea2dbbf85b26019c9fdd70fab624a 100644 (file)
@@ -651,7 +651,7 @@ static enum page_references page_check_references(struct page *page,
        }
 
        /* Reclaim if clean, defer dirty pages to writeback */
-       if (referenced_page)
+       if (referenced_page && !PageSwapBacked(page))
                return PAGEREF_RECLAIM_CLEAN;
 
        return PAGEREF_RECLAIM;
@@ -913,7 +913,7 @@ keep_lumpy:
         * back off and wait for congestion to clear because further reclaim
         * will encounter the same problem
         */
-       if (nr_dirty == nr_congested)
+       if (nr_dirty == nr_congested && nr_dirty != 0)
                zone_set_flag(zone, ZONE_CONGESTED);
 
        free_page_list(&free_pages);