diff options
Diffstat (limited to 'fs/proc/page.c')
-rw-r--r-- | fs/proc/page.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/proc/page.c b/fs/proc/page.c index b2855eea5405..712f1b9992cc 100644 --- a/fs/proc/page.c +++ b/fs/proc/page.c | |||
@@ -103,9 +103,9 @@ u64 stable_page_flags(struct page *page) | |||
103 | * pseudo flags for the well known (anonymous) memory mapped pages | 103 | * pseudo flags for the well known (anonymous) memory mapped pages |
104 | * | 104 | * |
105 | * Note that page->_mapcount is overloaded in SLOB/SLUB/SLQB, so the | 105 | * Note that page->_mapcount is overloaded in SLOB/SLUB/SLQB, so the |
106 | * simple test in page_mapcount() is not enough. | 106 | * simple test in page_mapped() is not enough. |
107 | */ | 107 | */ |
108 | if (!PageSlab(page) && page_mapcount(page)) | 108 | if (!PageSlab(page) && page_mapped(page)) |
109 | u |= 1 << KPF_MMAP; | 109 | u |= 1 << KPF_MMAP; |
110 | if (PageAnon(page)) | 110 | if (PageAnon(page)) |
111 | u |= 1 << KPF_ANON; | 111 | u |= 1 << KPF_ANON; |
@@ -148,6 +148,8 @@ u64 stable_page_flags(struct page *page) | |||
148 | */ | 148 | */ |
149 | if (PageBuddy(page)) | 149 | if (PageBuddy(page)) |
150 | u |= 1 << KPF_BUDDY; | 150 | u |= 1 << KPF_BUDDY; |
151 | else if (page_count(page) == 0 && is_free_buddy_page(page)) | ||
152 | u |= 1 << KPF_BUDDY; | ||
151 | 153 | ||
152 | if (PageBalloon(page)) | 154 | if (PageBalloon(page)) |
153 | u |= 1 << KPF_BALLOON; | 155 | u |= 1 << KPF_BALLOON; |
@@ -158,6 +160,8 @@ u64 stable_page_flags(struct page *page) | |||
158 | u |= kpf_copy_bit(k, KPF_LOCKED, PG_locked); | 160 | u |= kpf_copy_bit(k, KPF_LOCKED, PG_locked); |
159 | 161 | ||
160 | u |= kpf_copy_bit(k, KPF_SLAB, PG_slab); | 162 | u |= kpf_copy_bit(k, KPF_SLAB, PG_slab); |
163 | if (PageTail(page) && PageSlab(compound_head(page))) | ||
164 | u |= 1 << KPF_SLAB; | ||
161 | 165 | ||
162 | u |= kpf_copy_bit(k, KPF_ERROR, PG_error); | 166 | u |= kpf_copy_bit(k, KPF_ERROR, PG_error); |
163 | u |= kpf_copy_bit(k, KPF_DIRTY, PG_dirty); | 167 | u |= kpf_copy_bit(k, KPF_DIRTY, PG_dirty); |