Revert "SLUB: Fix build breakage in linux/mm_types.h"
authorPekka Enberg <penberg@kernel.org>
Mon, 18 Jul 2011 12:16:55 +0000 (15:16 +0300)
committerPekka Enberg <penberg@kernel.org>
Mon, 18 Jul 2011 12:16:55 +0000 (15:16 +0300)
This reverts commit ea6bd8ee1a2ccdffc38b2b1fcfe941addfafaade.

include/linux/mm_types.h

index 6dc6413f5debdf73d317be6074aadc5c031fc3b0..3d76a433d52f24547c2b4afd500fcd6883c4f0f4 100644 (file)
@@ -49,27 +49,32 @@ struct page {
                                         * see PAGE_MAPPING_ANON below.
                                         */
        /* Second double word */
-       struct {
-               union {
+       union {
+               struct {
                        pgoff_t index;          /* Our offset within mapping. */
-                       void *freelist;         /* slub first free object */
-               };
-
-               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. */
+               };
 
-                       /* Used for cmpxchg_double in slub */
-                       unsigned long counters;
-                       struct {
+               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;
+                               };
                        };
                };
-               atomic_t _count;                /* Usage count, see below. */
        };
 
        /* Third double word block */