|
@@ -49,30 +49,31 @@ struct page {
|
|
|
* see PAGE_MAPPING_ANON below.
|
|
|
*/
|
|
|
/* Second double word */
|
|
|
- union {
|
|
|
- struct {
|
|
|
+ struct {
|
|
|
+ union {
|
|
|
pgoff_t index; /* Our offset within mapping. */
|
|
|
- atomic_t _mapcount; /* Count of ptes mapped in mms,
|
|
|
+ void *freelist; /* slub first free object */
|
|
|
+ };
|
|
|
+
|
|
|
+ union {
|
|
|
+ /* Used for cmpxchg_double in slub */
|
|
|
+ unsigned long counters;
|
|
|
+
|
|
|
+ struct {
|
|
|
+
|
|
|
+ union {
|
|
|
+ atomic_t _mapcount; /* Count of ptes mapped in mms,
|
|
|
* to show when page is mapped
|
|
|
* & limit reverse map searches.
|
|
|
*/
|
|
|
- atomic_t _count; /* Usage count, see below. */
|
|
|
- };
|
|
|
|
|
|
- struct { /* SLUB cmpxchg_double area */
|
|
|
- void *freelist;
|
|
|
- union {
|
|
|
- unsigned long counters;
|
|
|
- struct {
|
|
|
- unsigned inuse:16;
|
|
|
- unsigned objects:15;
|
|
|
- unsigned frozen:1;
|
|
|
- /*
|
|
|
- * Kernel may make use of this field even when slub
|
|
|
- * uses the rest of the double word!
|
|
|
- */
|
|
|
- atomic_t _count;
|
|
|
+ struct {
|
|
|
+ unsigned inuse:16;
|
|
|
+ unsigned objects:15;
|
|
|
+ unsigned frozen:1;
|
|
|
+ };
|
|
|
};
|
|
|
+ atomic_t _count; /* Usage count, see below. */
|
|
|
};
|
|
|
};
|
|
|
};
|