fs, epoll: add procfs fdinfo helper
[linux-3.10.git] / fs / proc / page.c
index 6d8e6a9..b8730d9 100644 (file)
@@ -115,6 +115,14 @@ u64 stable_page_flags(struct page *page)
                u |= 1 << KPF_COMPOUND_TAIL;
        if (PageHuge(page))
                u |= 1 << KPF_HUGE;
+       /*
+        * PageTransCompound can be true for non-huge compound pages (slab
+        * pages or pages allocated by drivers with __GFP_COMP) because it
+        * just checks PG_head/PG_tail, so we need to check PageLRU to make
+        * sure a given page is a thp, not a non-huge compound page.
+        */
+       else if (PageTransCompound(page) && PageLRU(compound_trans_head(page)))
+               u |= 1 << KPF_THP;
 
        /*
         * Caveats on high order pages: page->_count will only be set