As suggested by Marcelo:
1. The optimization introduced recently for not calling
   page_referenced() during zone reclaim makes two additional checks in
   shrink_list unnecessary.
2. The if (unlikely(sc->may_swap)) in refill_inactive_zone is optimized
   for the zone_reclaim case.  However, most peoples system only does swap.
   Undo that.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
                 * Anonymous process memory has backing store?
                 * Try to allocate it some swap space here.
                 */
-               if (PageAnon(page) && !PageSwapCache(page)) {
-                       if (!sc->may_swap)
-                               goto keep_locked;
+               if (PageAnon(page) && !PageSwapCache(page))
                        if (!add_to_swap(page, GFP_ATOMIC))
                                goto activate_locked;
-               }
 #endif /* CONFIG_SWAP */
 
                mapping = page_mapping(page);
                 * processes. Try to unmap it here.
                 */
                if (page_mapped(page) && mapping) {
-                       /*
-                        * No unmapping if we do not swap
-                        */
-                       if (!sc->may_swap)
-                               goto keep_locked;
-
                        switch (try_to_unmap(page, 0)) {
                        case SWAP_FAIL:
                                goto activate_locked;
        struct pagevec pvec;
        int reclaim_mapped = 0;
 
-       if (unlikely(sc->may_swap)) {
+       if (sc->may_swap) {
                long mapped_ratio;
                long distress;
                long swap_tendency;