case XFS_BTNUM_BNO:
        case XFS_BTNUM_CNT:
                return (int)XFS_ALLOC_BLOCK_MAXRECS(
-                               be16_to_cpu(block->bb_h.bb_level), cur);
+                               be16_to_cpu(block->bb_level), cur);
        case XFS_BTNUM_BMAP:
                return (int)XFS_BMAP_BLOCK_IMAXRECS(
-                               be16_to_cpu(block->bb_h.bb_level), cur);
+                               be16_to_cpu(block->bb_level), cur);
        case XFS_BTNUM_INO:
                return (int)XFS_INOBT_BLOCK_MAXRECS(
-                               be16_to_cpu(block->bb_h.bb_level), cur);
+                               be16_to_cpu(block->bb_level), cur);
        default:
                ASSERT(0);
                return 0;
        /*
         * It's empty, there is no such record.
         */
-       if (!block->bb_h.bb_numrecs)
+       if (!block->bb_numrecs)
                return 0;
        /*
         * Set the ptr value to 1, that's the first record/key.
        /*
         * It's empty, there is no such record.
         */
-       if (!block->bb_h.bb_numrecs)
+       if (!block->bb_numrecs)
                return 0;
        /*
         * Set the ptr value to numrecs, that's the last record/key.
         */
-       cur->bc_ptrs[level] = be16_to_cpu(block->bb_h.bb_numrecs);
+       cur->bc_ptrs[level] = be16_to_cpu(block->bb_numrecs);
        return 1;
 }
 
 
 /*
  * Combined header and structure, used by common code.
  */
-typedef struct xfs_btree_hdr
-{
+typedef struct xfs_btree_block {
        __be32          bb_magic;       /* magic number for block type */
        __be16          bb_level;       /* 0 is a leaf */
        __be16          bb_numrecs;     /* current # of data records */
-} xfs_btree_hdr_t;
-
-typedef struct xfs_btree_block {
-       xfs_btree_hdr_t bb_h;           /* header */
        union {
                struct {
                        __be32          bb_leftsib;