Przeglądaj źródła

Revert "SLUB: Fix build breakage in linux/mm_types.h"

This reverts commit ea6bd8ee1a2ccdffc38b2b1fcfe941addfafaade.
Pekka Enberg 14 lat temu
rodzic
commit
3adf004d82
1 zmienionych plików z 15 dodań i 10 usunięć
  1. 15 10
      include/linux/mm_types.h

+ 15 - 10
include/linux/mm_types.h

@@ -49,27 +49,32 @@ struct page {
 					 * see PAGE_MAPPING_ANON below.
 					 * see PAGE_MAPPING_ANON below.
 					 */
 					 */
 	/* Second double word */
 	/* Second double word */
-	struct {
-		union {
+	union {
+		struct {
 			pgoff_t index;		/* Our offset within mapping. */
 			pgoff_t index;		/* Our offset within mapping. */
-			void *freelist;		/* slub first free object */
-		};
-
-		union {
 			atomic_t _mapcount;	/* Count of ptes mapped in mms,
 			atomic_t _mapcount;	/* Count of ptes mapped in mms,
 							 * to show when page is mapped
 							 * to show when page is mapped
 							 * & limit reverse map searches.
 							 * & 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 inuse:16;
 					unsigned objects:15;
 					unsigned objects:15;
 					unsigned frozen:1;
 					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 */
 	/* Third double word block */