unsigned char   offset;         /* Slot offset in parent */
        unsigned char   count;          /* Total entry count */
        unsigned char   exceptional;    /* Exceptional entry count */
+       struct radix_tree_node *parent;         /* Used when ascending tree */
+       void *private_data;                     /* For tree user */
        union {
-               struct {
-                       /* Used when ascending tree */
-                       struct radix_tree_node *parent;
-                       /* For tree user */
-                       void *private_data;
-               };
-               /* Used when freeing node */
-               struct rcu_head rcu_head;
+               struct list_head private_list;  /* For tree user */
+               struct rcu_head rcu_head;       /* Used when freeing node */
        };
-       /* For tree user */
-       struct list_head private_list;
        void __rcu      *slots[RADIX_TREE_MAP_SIZE];
        unsigned long   tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS];
 };