diff options
author | Andy Whitcroft <apw@shadowen.org> | 2008-07-24 00:27:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-24 13:47:15 -0400 |
commit | 9023cb7e8564d95a1893f8cb6895a293be9a71fe (patch) | |
tree | 641e9918124a2a9e6642916ed9d23f97fbf95526 /mm/slob.c | |
parent | 8a38082d21cbc5ec961da7dda195e98a9a064dcf (diff) |
slob: record page flag overlays explicitly
SLOB reuses two page bits for internal purposes, it overlays PG_active and
PG_private. This is hidden away in slob.c. Document these overlays
explicitly in the main page-flags enum along with all the others.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Matt Mackall <mpm@selenic.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/slob.c')
-rw-r--r-- | mm/slob.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -130,17 +130,17 @@ static LIST_HEAD(free_slob_large); | |||
130 | */ | 130 | */ |
131 | static inline int slob_page(struct slob_page *sp) | 131 | static inline int slob_page(struct slob_page *sp) |
132 | { | 132 | { |
133 | return test_bit(PG_active, &sp->flags); | 133 | return PageSlobPage((struct page *)sp); |
134 | } | 134 | } |
135 | 135 | ||
136 | static inline void set_slob_page(struct slob_page *sp) | 136 | static inline void set_slob_page(struct slob_page *sp) |
137 | { | 137 | { |
138 | __set_bit(PG_active, &sp->flags); | 138 | __SetPageSlobPage((struct page *)sp); |
139 | } | 139 | } |
140 | 140 | ||
141 | static inline void clear_slob_page(struct slob_page *sp) | 141 | static inline void clear_slob_page(struct slob_page *sp) |
142 | { | 142 | { |
143 | __clear_bit(PG_active, &sp->flags); | 143 | __ClearPageSlobPage((struct page *)sp); |
144 | } | 144 | } |
145 | 145 | ||
146 | /* | 146 | /* |
@@ -148,19 +148,19 @@ static inline void clear_slob_page(struct slob_page *sp) | |||
148 | */ | 148 | */ |
149 | static inline int slob_page_free(struct slob_page *sp) | 149 | static inline int slob_page_free(struct slob_page *sp) |
150 | { | 150 | { |
151 | return test_bit(PG_private, &sp->flags); | 151 | return PageSlobFree((struct page *)sp); |
152 | } | 152 | } |
153 | 153 | ||
154 | static void set_slob_page_free(struct slob_page *sp, struct list_head *list) | 154 | static void set_slob_page_free(struct slob_page *sp, struct list_head *list) |
155 | { | 155 | { |
156 | list_add(&sp->list, list); | 156 | list_add(&sp->list, list); |
157 | __set_bit(PG_private, &sp->flags); | 157 | __SetPageSlobFree((struct page *)sp); |
158 | } | 158 | } |
159 | 159 | ||
160 | static inline void clear_slob_page_free(struct slob_page *sp) | 160 | static inline void clear_slob_page_free(struct slob_page *sp) |
161 | { | 161 | { |
162 | list_del(&sp->list); | 162 | list_del(&sp->list); |
163 | __clear_bit(PG_private, &sp->flags); | 163 | __ClearPageSlobFree((struct page *)sp); |
164 | } | 164 | } |
165 | 165 | ||
166 | #define SLOB_UNIT sizeof(slob_t) | 166 | #define SLOB_UNIT sizeof(slob_t) |