slab,slub: remove rcu_head size checks
[linux-2.6-microblaze.git] / mm / swap_slots.c
index f264189..f51ac05 100644 (file)
@@ -317,7 +317,7 @@ swp_entry_t get_swap_page(struct page *page)
        if (PageTransHuge(page)) {
                if (IS_ENABLED(CONFIG_THP_SWAP))
                        get_swap_pages(1, true, &entry);
-               return entry;
+               goto out;
        }
 
        /*
@@ -347,10 +347,14 @@ repeat:
                }
                mutex_unlock(&cache->alloc_lock);
                if (entry.val)
-                       return entry;
+                       goto out;
        }
 
        get_swap_pages(1, false, &entry);
-
+out:
+       if (mem_cgroup_try_charge_swap(page, entry)) {
+               put_swap_page(page, entry);
+               entry.val = 0;
+       }
        return entry;
 }