};
        };
 
-       union {
+       union {         /* This union is 4 bytes in size. */
+               /*
+                * If the page can be mapped to userspace, encodes the number
+                * of times this page is referenced by a page table.
+                */
+               atomic_t _mapcount;
+
                /*
                 * If the page is neither PageSlab nor mappable to userspace,
                 * the value stored here may help determine what this page
 
                unsigned int active;            /* SLAB */
                int units;                      /* SLOB */
-
-               struct {                        /* Page cache */
-                       /*
-                        * Count of ptes mapped in mms, to show when
-                        * page is mapped & limit reverse map searches.
-                        */
-                       atomic_t _mapcount;
-
-                       /*
-                        * Usage count, *USE WRAPPER FUNCTION* when manual
-                        * accounting. See page_ref.h
-                        */
-                       atomic_t _refcount;
-               };
        };
 
+       /* Usage count. *DO NOT USE DIRECTLY*. See page_ref.h */
+       atomic_t _refcount;
+
        /*
         * WARNING: bit 0 of the first word encode PageTail(). That means
         * the rest users of the storage space MUST NOT use the bit to