diff options
Diffstat (limited to 'include/linux/page-flags.h')
-rw-r--r-- | include/linux/page-flags.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 3d31616dcd23..ec1a1baad348 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
@@ -94,6 +94,9 @@ enum pageflags { | |||
94 | PG_reclaim, /* To be reclaimed asap */ | 94 | PG_reclaim, /* To be reclaimed asap */ |
95 | PG_buddy, /* Page is free, on buddy lists */ | 95 | PG_buddy, /* Page is free, on buddy lists */ |
96 | PG_swapbacked, /* Page is backed by RAM/swap */ | 96 | PG_swapbacked, /* Page is backed by RAM/swap */ |
97 | #ifdef CONFIG_UNEVICTABLE_LRU | ||
98 | PG_unevictable, /* Page is "unevictable" */ | ||
99 | #endif | ||
97 | #ifdef CONFIG_IA64_UNCACHED_ALLOCATOR | 100 | #ifdef CONFIG_IA64_UNCACHED_ALLOCATOR |
98 | PG_uncached, /* Page has been mapped as uncached */ | 101 | PG_uncached, /* Page has been mapped as uncached */ |
99 | #endif | 102 | #endif |
@@ -182,6 +185,7 @@ PAGEFLAG(Referenced, referenced) TESTCLEARFLAG(Referenced, referenced) | |||
182 | PAGEFLAG(Dirty, dirty) TESTSCFLAG(Dirty, dirty) __CLEARPAGEFLAG(Dirty, dirty) | 185 | PAGEFLAG(Dirty, dirty) TESTSCFLAG(Dirty, dirty) __CLEARPAGEFLAG(Dirty, dirty) |
183 | PAGEFLAG(LRU, lru) __CLEARPAGEFLAG(LRU, lru) | 186 | PAGEFLAG(LRU, lru) __CLEARPAGEFLAG(LRU, lru) |
184 | PAGEFLAG(Active, active) __CLEARPAGEFLAG(Active, active) | 187 | PAGEFLAG(Active, active) __CLEARPAGEFLAG(Active, active) |
188 | TESTCLEARFLAG(Active, active) | ||
185 | __PAGEFLAG(Slab, slab) | 189 | __PAGEFLAG(Slab, slab) |
186 | PAGEFLAG(Checked, checked) /* Used by some filesystems */ | 190 | PAGEFLAG(Checked, checked) /* Used by some filesystems */ |
187 | PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned) /* Xen */ | 191 | PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned) /* Xen */ |
@@ -225,6 +229,15 @@ PAGEFLAG(SwapCache, swapcache) | |||
225 | PAGEFLAG_FALSE(SwapCache) | 229 | PAGEFLAG_FALSE(SwapCache) |
226 | #endif | 230 | #endif |
227 | 231 | ||
232 | #ifdef CONFIG_UNEVICTABLE_LRU | ||
233 | PAGEFLAG(Unevictable, unevictable) __CLEARPAGEFLAG(Unevictable, unevictable) | ||
234 | TESTCLEARFLAG(Unevictable, unevictable) | ||
235 | #else | ||
236 | PAGEFLAG_FALSE(Unevictable) TESTCLEARFLAG_FALSE(Unevictable) | ||
237 | SETPAGEFLAG_NOOP(Unevictable) CLEARPAGEFLAG_NOOP(Unevictable) | ||
238 | __CLEARPAGEFLAG_NOOP(Unevictable) | ||
239 | #endif | ||
240 | |||
228 | #ifdef CONFIG_IA64_UNCACHED_ALLOCATOR | 241 | #ifdef CONFIG_IA64_UNCACHED_ALLOCATOR |
229 | PAGEFLAG(Uncached, uncached) | 242 | PAGEFLAG(Uncached, uncached) |
230 | #else | 243 | #else |
@@ -340,9 +353,16 @@ static inline void __ClearPageTail(struct page *page) | |||
340 | 353 | ||
341 | #endif /* !PAGEFLAGS_EXTENDED */ | 354 | #endif /* !PAGEFLAGS_EXTENDED */ |
342 | 355 | ||
356 | #ifdef CONFIG_UNEVICTABLE_LRU | ||
357 | #define __PG_UNEVICTABLE (1 << PG_unevictable) | ||
358 | #else | ||
359 | #define __PG_UNEVICTABLE 0 | ||
360 | #endif | ||
361 | |||
343 | #define PAGE_FLAGS (1 << PG_lru | 1 << PG_private | 1 << PG_locked | \ | 362 | #define PAGE_FLAGS (1 << PG_lru | 1 << PG_private | 1 << PG_locked | \ |
344 | 1 << PG_buddy | 1 << PG_writeback | \ | 363 | 1 << PG_buddy | 1 << PG_writeback | \ |
345 | 1 << PG_slab | 1 << PG_swapcache | 1 << PG_active) | 364 | 1 << PG_slab | 1 << PG_swapcache | 1 << PG_active | \ |
365 | __PG_UNEVICTABLE) | ||
346 | 366 | ||
347 | /* | 367 | /* |
348 | * Flags checked in bad_page(). Pages on the free list should not have | 368 | * Flags checked in bad_page(). Pages on the free list should not have |