diff options
Diffstat (limited to 'include/linux/page-flags.h')
-rw-r--r-- | include/linux/page-flags.h | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 0d2a4e7012aa..c74d3e875314 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
@@ -96,7 +96,22 @@ enum pageflags { | |||
96 | #ifdef CONFIG_IA64_UNCACHED_ALLOCATOR | 96 | #ifdef CONFIG_IA64_UNCACHED_ALLOCATOR |
97 | PG_uncached, /* Page has been mapped as uncached */ | 97 | PG_uncached, /* Page has been mapped as uncached */ |
98 | #endif | 98 | #endif |
99 | __NR_PAGEFLAGS | 99 | __NR_PAGEFLAGS, |
100 | |||
101 | /* Filesystems */ | ||
102 | PG_checked = PG_owner_priv_1, | ||
103 | |||
104 | /* XEN */ | ||
105 | PG_pinned = PG_owner_priv_1, | ||
106 | PG_savepinned = PG_dirty, | ||
107 | |||
108 | /* SLOB */ | ||
109 | PG_slob_page = PG_active, | ||
110 | PG_slob_free = PG_private, | ||
111 | |||
112 | /* SLUB */ | ||
113 | PG_slub_frozen = PG_active, | ||
114 | PG_slub_debug = PG_error, | ||
100 | }; | 115 | }; |
101 | 116 | ||
102 | #ifndef __GENERATING_BOUNDS_H | 117 | #ifndef __GENERATING_BOUNDS_H |
@@ -148,20 +163,26 @@ static inline int Page##uname(struct page *page) \ | |||
148 | 163 | ||
149 | struct page; /* forward declaration */ | 164 | struct page; /* forward declaration */ |
150 | 165 | ||
151 | PAGEFLAG(Locked, locked) TESTSCFLAG(Locked, locked) | 166 | TESTPAGEFLAG(Locked, locked) |
152 | PAGEFLAG(Error, error) | 167 | PAGEFLAG(Error, error) |
153 | PAGEFLAG(Referenced, referenced) TESTCLEARFLAG(Referenced, referenced) | 168 | PAGEFLAG(Referenced, referenced) TESTCLEARFLAG(Referenced, referenced) |
154 | PAGEFLAG(Dirty, dirty) TESTSCFLAG(Dirty, dirty) __CLEARPAGEFLAG(Dirty, dirty) | 169 | PAGEFLAG(Dirty, dirty) TESTSCFLAG(Dirty, dirty) __CLEARPAGEFLAG(Dirty, dirty) |
155 | PAGEFLAG(LRU, lru) __CLEARPAGEFLAG(LRU, lru) | 170 | PAGEFLAG(LRU, lru) __CLEARPAGEFLAG(LRU, lru) |
156 | PAGEFLAG(Active, active) __CLEARPAGEFLAG(Active, active) | 171 | PAGEFLAG(Active, active) __CLEARPAGEFLAG(Active, active) |
157 | __PAGEFLAG(Slab, slab) | 172 | __PAGEFLAG(Slab, slab) |
158 | PAGEFLAG(Checked, owner_priv_1) /* Used by some filesystems */ | 173 | PAGEFLAG(Checked, checked) /* Used by some filesystems */ |
159 | PAGEFLAG(Pinned, owner_priv_1) TESTSCFLAG(Pinned, owner_priv_1) /* Xen */ | 174 | PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned) /* Xen */ |
160 | PAGEFLAG(SavePinned, dirty); /* Xen */ | 175 | PAGEFLAG(SavePinned, savepinned); /* Xen */ |
161 | PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved) | 176 | PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved) |
162 | PAGEFLAG(Private, private) __CLEARPAGEFLAG(Private, private) | 177 | PAGEFLAG(Private, private) __CLEARPAGEFLAG(Private, private) |
163 | __SETPAGEFLAG(Private, private) | 178 | __SETPAGEFLAG(Private, private) |
164 | 179 | ||
180 | __PAGEFLAG(SlobPage, slob_page) | ||
181 | __PAGEFLAG(SlobFree, slob_free) | ||
182 | |||
183 | __PAGEFLAG(SlubFrozen, slub_frozen) | ||
184 | __PAGEFLAG(SlubDebug, slub_debug) | ||
185 | |||
165 | /* | 186 | /* |
166 | * Only test-and-set exist for PG_writeback. The unconditional operators are | 187 | * Only test-and-set exist for PG_writeback. The unconditional operators are |
167 | * risky: they bypass page accounting. | 188 | * risky: they bypass page accounting. |
@@ -218,9 +239,6 @@ static inline void __SetPageUptodate(struct page *page) | |||
218 | { | 239 | { |
219 | smp_wmb(); | 240 | smp_wmb(); |
220 | __set_bit(PG_uptodate, &(page)->flags); | 241 | __set_bit(PG_uptodate, &(page)->flags); |
221 | #ifdef CONFIG_S390 | ||
222 | page_clear_dirty(page); | ||
223 | #endif | ||
224 | } | 242 | } |
225 | 243 | ||
226 | static inline void SetPageUptodate(struct page *page) | 244 | static inline void SetPageUptodate(struct page *page) |