cpuset: PF_SPREAD_PAGE and PF_SPREAD_SLAB should be atomic flags
[pandora-kernel.git] / mm / swap.c
index 00523ff..6b2dc38 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -908,8 +908,6 @@ void release_pages(struct page **pages, int nr, bool cold)
        struct lruvec *lruvec;
        unsigned long uninitialized_var(flags);
 
-       mem_cgroup_uncharge_start();
-
        for (i = 0; i < nr; i++) {
                struct page *page = pages[i];
 
@@ -941,7 +939,6 @@ void release_pages(struct page **pages, int nr, bool cold)
                        __ClearPageLRU(page);
                        del_page_from_lru_list(page, lruvec, page_off_lru(page));
                }
-               mem_cgroup_uncharge(page);
 
                /* Clear Active bit in case of parallel mark_page_accessed */
                __ClearPageActive(page);
@@ -951,8 +948,7 @@ void release_pages(struct page **pages, int nr, bool cold)
        if (zone)
                spin_unlock_irqrestore(&zone->lru_lock, flags);
 
-       mem_cgroup_uncharge_end();
-
+       mem_cgroup_uncharge_list(&pages_to_free);
        free_hot_cold_page_list(&pages_to_free, cold);
 }
 EXPORT_SYMBOL(release_pages);