]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - mm/page_alloc.c
xfrm: add and use xfrm_state_afinfo_get_rcu
[mirror_ubuntu-artful-kernel.git] / mm / page_alloc.c
index f64e7bcb43b7c8666f883bf2f5a506d4d990b536..2c6d5f64feca409e9fdca4b551a240882e421476 100644 (file)
@@ -3925,6 +3925,20 @@ static struct page *__page_frag_refill(struct page_frag_cache *nc,
        return page;
 }
 
+void __page_frag_drain(struct page *page, unsigned int order,
+                      unsigned int count)
+{
+       VM_BUG_ON_PAGE(page_ref_count(page) == 0, page);
+
+       if (page_ref_sub_and_test(page, count)) {
+               if (order == 0)
+                       free_hot_cold_page(page, false);
+               else
+                       __free_pages_ok(page, order);
+       }
+}
+EXPORT_SYMBOL(__page_frag_drain);
+
 void *__alloc_page_frag(struct page_frag_cache *nc,
                        unsigned int fragsz, gfp_t gfp_mask)
 {