aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mm_inline.h27
-rw-r--r--include/linux/page-flags.h8
2 files changed, 33 insertions, 2 deletions
diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h
index 2704729777ef..96e970485b6c 100644
--- a/include/linux/mm_inline.h
+++ b/include/linux/mm_inline.h
@@ -1,3 +1,28 @@
1#ifndef LINUX_MM_INLINE_H
2#define LINUX_MM_INLINE_H
3
4/**
5 * page_is_file_cache - should the page be on a file LRU or anon LRU?
6 * @page: the page to test
7 *
8 * Returns !0 if @page is page cache page backed by a regular filesystem,
9 * or 0 if @page is anonymous, tmpfs or otherwise ram or swap backed.
10 * Used by functions that manipulate the LRU lists, to sort a page
11 * onto the right LRU list.
12 *
13 * We would like to get this info without a page flag, but the state
14 * needs to survive until the page is last deleted from the LRU, which
15 * could be as far down as __page_cache_release.
16 */
17static inline int page_is_file_cache(struct page *page)
18{
19 if (PageSwapBacked(page))
20 return 0;
21
22 /* The page is page cache backed by a normal filesystem. */
23 return 1;
24}
25
1static inline void 26static inline void
2add_page_to_lru_list(struct zone *zone, struct page *page, enum lru_list l) 27add_page_to_lru_list(struct zone *zone, struct page *page, enum lru_list l)
3{ 28{
@@ -65,3 +90,5 @@ static inline enum lru_list page_lru(struct page *page)
65 90
66 return lru; 91 return lru;
67} 92}
93
94#endif
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index c74d3e875314..57b688cfb5e2 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -93,6 +93,7 @@ enum pageflags {
93 PG_mappedtodisk, /* Has blocks allocated on-disk */ 93 PG_mappedtodisk, /* Has blocks allocated on-disk */
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#ifdef CONFIG_IA64_UNCACHED_ALLOCATOR 97#ifdef CONFIG_IA64_UNCACHED_ALLOCATOR
97 PG_uncached, /* Page has been mapped as uncached */ 98 PG_uncached, /* Page has been mapped as uncached */
98#endif 99#endif
@@ -176,6 +177,7 @@ PAGEFLAG(SavePinned, savepinned); /* Xen */
176PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved) 177PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
177PAGEFLAG(Private, private) __CLEARPAGEFLAG(Private, private) 178PAGEFLAG(Private, private) __CLEARPAGEFLAG(Private, private)
178 __SETPAGEFLAG(Private, private) 179 __SETPAGEFLAG(Private, private)
180PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)
179 181
180__PAGEFLAG(SlobPage, slob_page) 182__PAGEFLAG(SlobPage, slob_page)
181__PAGEFLAG(SlobFree, slob_free) 183__PAGEFLAG(SlobFree, slob_free)
@@ -334,7 +336,8 @@ static inline void __ClearPageTail(struct page *page)
334 * Flags checked in bad_page(). Pages on the free list should not have 336 * Flags checked in bad_page(). Pages on the free list should not have
335 * these flags set. It they are, there is a problem. 337 * these flags set. It they are, there is a problem.
336 */ 338 */
337#define PAGE_FLAGS_CLEAR_WHEN_BAD (PAGE_FLAGS | 1 << PG_reclaim | 1 << PG_dirty) 339#define PAGE_FLAGS_CLEAR_WHEN_BAD (PAGE_FLAGS | \
340 1 << PG_reclaim | 1 << PG_dirty | 1 << PG_swapbacked)
338 341
339/* 342/*
340 * Flags checked when a page is freed. Pages being freed should not have 343 * Flags checked when a page is freed. Pages being freed should not have
@@ -347,7 +350,8 @@ static inline void __ClearPageTail(struct page *page)
347 * Pages being prepped should not have these flags set. It they are, there 350 * Pages being prepped should not have these flags set. It they are, there
348 * is a problem. 351 * is a problem.
349 */ 352 */
350#define PAGE_FLAGS_CHECK_AT_PREP (PAGE_FLAGS | 1 << PG_reserved | 1 << PG_dirty) 353#define PAGE_FLAGS_CHECK_AT_PREP (PAGE_FLAGS | \
354 1 << PG_reserved | 1 << PG_dirty | 1 << PG_swapbacked)
351 355
352#endif /* !__GENERATING_BOUNDS_H */ 356#endif /* !__GENERATING_BOUNDS_H */
353#endif /* PAGE_FLAGS_H */ 357#endif /* PAGE_FLAGS_H */