X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=mm%2Fswap_state.c;h=69cb2464e7dcd598dcf18e8601f97c1c4f8bb627;hb=15dbc136dff62ebefb03353cfb7d308d49b275f3;hp=676ff2991380120275ba5d81d9660592bdc15b75;hpb=c699404db182836498bd9d9a36ef044de2cab4fd;p=linux-2.6-block.git diff --git a/mm/swap_state.c b/mm/swap_state.c index 676ff2991380..69cb2464e7dc 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -170,6 +170,11 @@ int add_to_swap(struct page *page, struct list_head *list) if (!entry.val) return 0; + if (mem_cgroup_try_charge_swap(page, entry)) { + swapcache_free(entry); + return 0; + } + if (unlikely(PageTransHuge(page))) if (unlikely(split_huge_page_to_list(page, list))) { swapcache_free(entry);