]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
Rework maximum transaction reservation calcs to be mkfs runtime, fix size check for...
authorNathan Scott <nathans@sgi.com>
Thu, 17 Jun 2004 07:15:04 +0000 (07:15 +0000)
committerNathan Scott <nathans@sgi.com>
Thu, 17 Jun 2004 07:15:04 +0000 (07:15 +0000)
mkfs/Makefile
mkfs/maxtrres.c
mkfs/trtab.c [deleted file]
mkfs/xfs_mkfs.c
mkfs/xfs_mkfs.h

index 9612563779f41eadd5e633ed5ffda3737f8624a5..a720cb3526c27113aacfa9b1c61591d40c0ccdc7 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2000-2003 Silicon Graphics, Inc.  All Rights Reserved.
+# Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
 # 
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of version 2 of the GNU General Public License as
@@ -34,30 +34,22 @@ TOPDIR = ..
 include $(TOPDIR)/include/builddefs
 
 LTCOMMAND = mkfs.xfs
-MAXTRRES = maxtrres
 FSTYP = fstyp
 
 HFILES = xfs_mkfs.h
-CFILES = trtab.c proto.c xfs_mkfs.c 
+CFILES = maxtrres.c proto.c xfs_mkfs.c 
 
 LLDLIBS = $(LIBXFS) $(LIBUUID) $(LIBDISK)
 LTDEPENDENCIES = $(LIBXFS) $(LIBDISK)
 LLDFLAGS = -static
 
-MAXTRLIBS = $(LIBXFS) $(LIBUUID) $(PLDLIBS)
-LSRCFILES = $(MAXTRRES).c $(FSTYP).c
-LDIRT = $(MAXTRRES) $(MAXTRRES).o $(MAXTRRES).h $(FSTYP)
+LSRCFILES = $(FSTYP).c
+LDIRT = $(FSTYP)
 
-default: $(MAXTRRES).h $(FSTYP) $(LTCOMMAND)
+default: $(FSTYP) $(LTCOMMAND)
 
 include $(BUILDRULES)
 
-$(MAXTRRES): $(MAXTRRES).o
-       $(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(MAXTRLIBS)
-
-$(MAXTRRES).h: $(MAXTRRES)
-       $(LTEXEC) ./$(MAXTRRES) > $@ || ( rm -f $@ && exit 1 )
-
 $(FSTYP):
        $(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LIBDISK) $(PLDLIBS)
 
index db916bf8132111fc0cb65426869565cafe4636ad..bd797d606fe31ab9f4877b3abe5efa0c9465a89f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
+ * Copyright (c) 2000-2001,2004 Silicon Graphics, Inc.  All Rights Reserved.
  * 
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  */
 
 /*
- * maxtrres
+ * maxtrres.c
  * 
- * Compute the maximum transaction reservation for every legal
- * combination of block size, inode size, directory version, 
- * and directory block size.
- * Generates a table compiled into mkfs, to control the default
- * and minimum log sizes.
+ * Compute the maximum transaction reservation for a legal combination
+ * of sector size, block size, inode size, directory version, and
+ * directory block size.
  */
 
 #include <xfs/libxfs.h>
 #include "xfs_mkfs.h"
 
-xfs_trans_reservations_t tr_count = {
-       XFS_WRITE_LOG_COUNT,            /* extent alloc trans */
-       XFS_ITRUNCATE_LOG_COUNT,        /* truncate trans */
-       XFS_RENAME_LOG_COUNT,           /* rename trans */
-       XFS_LINK_LOG_COUNT,             /* link trans */
-       XFS_REMOVE_LOG_COUNT,           /* unlink trans */
-       XFS_SYMLINK_LOG_COUNT,          /* symlink trans */
-       XFS_CREATE_LOG_COUNT,           /* create trans */
-       XFS_MKDIR_LOG_COUNT,            /* mkdir trans */
-       XFS_DEFAULT_LOG_COUNT,          /* inode free trans */
-       XFS_DEFAULT_LOG_COUNT,          /* inode update trans */
-       XFS_DEFAULT_LOG_COUNT,          /* fs data section grow trans */
-       XFS_DEFAULT_LOG_COUNT,          /* sync write inode trans */
-       XFS_ADDAFORK_LOG_COUNT,         /* cvt inode to attributed trans */
-       XFS_DEFAULT_LOG_COUNT,          /* write setuid/setgid file */
-       XFS_ATTRINVAL_LOG_COUNT,        /* attr fork buffer invalidation */
-       XFS_ATTRSET_LOG_COUNT,          /* set/create an attribute */
-       XFS_ATTRRM_LOG_COUNT,           /* remove an attribute */
-       XFS_DEFAULT_LOG_COUNT,          /* clear bad agi unlinked ino bucket */
-       XFS_DEFAULT_PERM_LOG_COUNT,     /* grow realtime allocations */
-       XFS_DEFAULT_LOG_COUNT,          /* grow realtime zeroing */
-       XFS_DEFAULT_LOG_COUNT,          /* grow realtime freeing */
-};
-
-static int
-max_trans_res(
-       xfs_mount_t                     *mp,
-       int                             *mul)
+static void
+max_attrset_trans_res_adjust(
+       xfs_mount_t                     *mp)
 {
-       uint                            *p;
-       uint                            *q;
-       int                             rval;
-       xfs_trans_reservations_t        *tr;
        xfs_da_args_t                   args;
        int                             local;
        int                             size;
        int                             nblks;
        int                             res;
 
-       nblks = XFS_DAENTER_SPACE_RES(mp, XFS_ATTR_FORK);
-
        /*
         * Fill in the arg structure for this request.
+        * This is the maximal sized extended attribute name
+        * and value (64k) combination, to calculate the
+        * largest reservation size needed.
         */
-       bzero(&args, sizeof(args));
-       args.name = NULL;
+       memset(&args, 0, sizeof(args));
        args.namelen = MAXNAMELEN;
-       args.value = NULL;
        args.valuelen = 65536;
-       args.flags = 0;
-       args.hashval = 0;
-       args.dp = NULL;
-       args.firstblock = NULL;
-       args.flist = NULL;
        args.whichfork = XFS_ATTR_FORK;
        args.oknoent = 1;
 
@@ -106,100 +69,72 @@ max_trans_res(
         */
        size = libxfs_attr_leaf_newentsize(
                        &args, mp->m_sb.sb_blocksize, &local);
-
-       if (local) {
-               printf("Uh-oh.. attribute is local\n");
-       } else {
-               /* Out of line attribute, cannot double split, but make
-                * room for the attribute value itself.
-                */
-               nblks += XFS_B_TO_FSB(mp, size);
-               nblks += XFS_NEXTENTADD_SPACE_RES(mp, size, XFS_ATTR_FORK);
-       }
+       ASSERT(!local);
+       nblks = XFS_DAENTER_SPACE_RES(mp, XFS_ATTR_FORK);
+       nblks += XFS_B_TO_FSB(mp, size);
+       nblks += XFS_NEXTENTADD_SPACE_RES(mp, size, XFS_ATTR_FORK);
        res = XFS_ATTRSET_LOG_RES(mp, nblks);
+
 #if 0
        printf("size = %d nblks = %d res = %d\n", size, nblks, res);
 #endif
+
        mp->m_reservations.tr_attrset = res;
+}
+
+static int
+max_trans_res_by_mount(
+       xfs_mount_t                     *mp)
+{
+       uint                            *p;
+       int                             rval;
+       xfs_trans_reservations_t        *tr = &mp->m_reservations;
 
-       for (rval = 0, tr = &mp->m_reservations, p = (uint *)tr,
-            q = (uint *)&tr_count;
-            p < (uint *)(tr + 1);
-            p++, q++) {
-               if ((int)*p > rval) {
+       for (rval = 0, p = (uint *)tr; p < (uint *)(tr + 1); p++) {
+               if ((int)*p > rval)
                        rval = (int)*p;
-                       *mul = (int)*q;
-               }
        }
        return rval;
 }
 
 int
-main(int argc, char **argv)
+max_trans_res(
+       int             dirversion,
+       int             sectorlog,
+       int             blocklog,
+       int             inodelog,
+       int             dirblocklog)
 {
-       unsigned int    sl, bl, il, dl, dv;
-       unsigned int    i, mul;
-       xfs_mount_t     m;
        xfs_sb_t        *sbp;
+       xfs_mount_t     mount;
+       int             maxres, maxfsb;
 
-       progname = basename(argv[0]);
-       if (argc > 1) {
-               fprintf(stderr, "Usage: %s\n", progname);
-               return 1;
-       }
-       memset(&m, 0, sizeof(m));
-       sbp = &m.m_sb;
+       memset(&mount, 0, sizeof(mount));
+       sbp = &mount.m_sb;
        sbp->sb_magicnum = XFS_SB_MAGIC;
+       sbp->sb_sectlog = sectorlog;
+       sbp->sb_sectsize = 1 << sbp->sb_sectlog;
+       sbp->sb_blocklog = blocklog;
+       sbp->sb_blocksize = 1 << blocklog;
+       sbp->sb_agblocks = XFS_AG_MIN_BYTES / (1 << blocklog);
+       sbp->sb_inodelog = inodelog;
+       sbp->sb_inopblog = blocklog - inodelog;
+       sbp->sb_inodesize = 1 << inodelog;
+       sbp->sb_inopblock = 1 << (blocklog - inodelog);
+       sbp->sb_dirblklog = dirblocklog - blocklog;
+       sbp->sb_versionnum = XFS_SB_VERSION_4 |
+                       (dirversion == 2 ? XFS_SB_VERSION_DIRV2BIT : 0);
 
-       for (sl = XFS_MIN_SECTORSIZE_LOG;
-            sl <= XFS_MAX_SECTORSIZE_LOG;
-            sl++) {
-               sbp->sb_sectlog = sl;
-               sbp->sb_sectsize = 1 << sbp->sb_sectlog;
-
-               for (bl = XFS_MIN_BLOCKSIZE_LOG;
-                    bl <= XFS_MAX_BLOCKSIZE_LOG;
-                    bl++) {
-                       if (bl < sl)
-                               continue;
-                       sbp->sb_blocklog = bl;
-                       sbp->sb_blocksize = 1 << bl;
-                       sbp->sb_agblocks = XFS_AG_MIN_BYTES / (1 << bl);
+       libxfs_mount(&mount, sbp, 0,0,0,0);
+       max_attrset_trans_res_adjust(&mount);
+       maxres = max_trans_res_by_mount(&mount);
+       maxfsb = XFS_B_TO_FSB(&mount, maxres);
+       libxfs_umount(&mount);
 
-                       for (il = XFS_DINODE_MIN_LOG;
-                            il <= XFS_DINODE_MAX_LOG;
-                            il++) {
-                               if ((1<<il) > (1<<bl) / XFS_MIN_INODE_PERBLOCK)
-                                       continue;
-                               sbp->sb_inodelog = il;
-                               sbp->sb_inopblog = bl - il;
-                               sbp->sb_inodesize = 1 << il;
-                               sbp->sb_inopblock = 1 << (bl - il);
+#if 0
+       printf("#define\tMAXTRRES_S%d_B%d_I%d_D%d_V%d\t%lld\n",
+               sectorlog, blocklog, inodelog, dirblocklog, dirversion, maxfsb);
+#endif
 
-                               for (dl = bl;
-                                    dl <= XFS_MAX_BLOCKSIZE_LOG;
-                                    dl++) {
-                                       sbp->sb_dirblklog = dl - bl;
-                                       for (dv = 1; dv <= 2; dv++) {
-                                               if (dv == 1 && dl != bl)
-                                                       continue;
-                                               sbp->sb_versionnum =
-                                                       XFS_SB_VERSION_4 |
-                                                       (dv == 2 ?
-                                                 XFS_SB_VERSION_DIRV2BIT : 0);
-                                               libxfs_mount(&m, sbp, 0,0,0,0);
-                                               i = max_trans_res(&m, &mul);
-                                               printf(
-                               "#define\tMAXTRRES_S%d_B%d_I%d_D%d_V%d\t%lld\t"
-                               "/* LOG_FACTOR %d */\n", sl, bl, il, dl, dv,
-                                                       (long long)
-                                                       XFS_B_TO_FSB(&m, i),
-                                                       mul);
-                                               libxfs_umount(&m);
-                                       }
-                               }
-                       }
-               }
-       }
-       return 0;
+       return maxfsb;
 }
diff --git a/mkfs/trtab.c b/mkfs/trtab.c
deleted file mode 100644 (file)
index 746e28c..0000000
+++ /dev/null
@@ -1,851 +0,0 @@
-/*
- * Copyright (c) 2002 Silicon Graphics, Inc.  All Rights Reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- * 
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * 
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- * 
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc., 59
- * Temple Place - Suite 330, Boston MA 02111-1307, USA.
- * 
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- * 
- * http://www.sgi.com 
- * 
- * For further information regarding this notice, see: 
- * 
- * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
- */
-
-#include <xfs/libxfs.h>
-#include "xfs_mkfs.h"
-#include "maxtrres.h"
-
-/*
- * Maximum transaction reservation tables
- * 
- * Version 1 directories:
- * first dimension log(sectorsize) (base XFS_MIN_SECTORSIZE_LOG)
- * second dimension log(blocksize) (base XFS_MIN_BLOCKSIZE_LOG)
- * third dimension log(inodesize) (base XFS_DINODE_MIN_LOG)
- * 
- * Version 2 directories:
- * first dimension log(sectorsize) (base XFS_MIN_SECTORSIZE_LOG)
- * second dimension log(blocksize) (base XFS_MIN_BLOCKSIZE_LOG)
- * third dimension log(inodesize) (base XFS_DINODE_MIN_LOG)
- * fourth dimension log(dirblocksize) (base XFS_MIN_BLOCKSIZE_LOG)
- */
-
-const int max_trres_v1[DFL_S][DFL_B][DFL_I] = {
-
-    /* ssize (7)  x  bsize[==dsize] (8)  x  isize (4) */
-
-    {   { MAXTRRES_S9_B9_I8_D9_V1,      0,
-          0,                            0 },
-        { MAXTRRES_S9_B10_I8_D10_V1,    MAXTRRES_S9_B10_I9_D10_V1,
-          0,                            0 },
-        { MAXTRRES_S9_B11_I8_D11_V1,    MAXTRRES_S9_B11_I9_D11_V1,
-          MAXTRRES_S9_B11_I10_D11_V1,   0 },
-        { MAXTRRES_S9_B12_I8_D12_V1,    MAXTRRES_S9_B12_I9_D12_V1,
-          MAXTRRES_S9_B12_I10_D12_V1,   MAXTRRES_S9_B12_I11_D12_V1 },
-        { MAXTRRES_S9_B13_I8_D13_V1,    MAXTRRES_S9_B13_I9_D13_V1,
-          MAXTRRES_S9_B13_I10_D13_V1,   MAXTRRES_S9_B13_I11_D13_V1 },
-        { MAXTRRES_S9_B14_I8_D14_V1,    MAXTRRES_S9_B14_I9_D14_V1,
-          MAXTRRES_S9_B14_I10_D14_V1,   MAXTRRES_S9_B14_I11_D14_V1 },
-        { MAXTRRES_S9_B15_I8_D15_V1,    MAXTRRES_S9_B15_I9_D15_V1,
-          MAXTRRES_S9_B15_I10_D15_V1,   MAXTRRES_S9_B15_I11_D15_V1 },
-        { MAXTRRES_S9_B16_I8_D16_V1,    MAXTRRES_S9_B16_I9_D16_V1,
-          MAXTRRES_S9_B16_I10_D16_V1,   MAXTRRES_S9_B16_I11_D16_V1 },
-    },
-
-    {   { 0, 0, 0, 0 },
-        { MAXTRRES_S10_B10_I8_D10_V1,   MAXTRRES_S10_B10_I9_D10_V1,
-          0,                            0 },
-        { MAXTRRES_S10_B11_I8_D11_V1,   MAXTRRES_S10_B11_I9_D11_V1,
-          MAXTRRES_S10_B11_I10_D11_V1,  0 },
-        { MAXTRRES_S10_B12_I8_D12_V1,   MAXTRRES_S10_B12_I9_D12_V1,
-          MAXTRRES_S10_B12_I10_D12_V1,  MAXTRRES_S10_B12_I11_D12_V1 },
-        { MAXTRRES_S10_B13_I8_D13_V1,   MAXTRRES_S10_B13_I9_D13_V1,
-          MAXTRRES_S10_B13_I10_D13_V1,  MAXTRRES_S10_B13_I11_D13_V1 },
-        { MAXTRRES_S10_B14_I8_D14_V1,   MAXTRRES_S10_B14_I9_D14_V1,
-          MAXTRRES_S10_B14_I10_D14_V1,  MAXTRRES_S10_B14_I11_D14_V1 },
-        { MAXTRRES_S10_B15_I8_D15_V1,   MAXTRRES_S10_B15_I9_D15_V1,
-          MAXTRRES_S10_B15_I10_D15_V1,  MAXTRRES_S10_B15_I11_D15_V1 },
-        { MAXTRRES_S10_B16_I8_D16_V1,   MAXTRRES_S10_B16_I9_D16_V1,
-          MAXTRRES_S10_B16_I10_D16_V1,  MAXTRRES_S10_B16_I11_D16_V1 },
-    },
-
-    {   { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { MAXTRRES_S11_B11_I8_D11_V1,   MAXTRRES_S11_B11_I9_D11_V1,
-          MAXTRRES_S11_B11_I10_D11_V1,  0 },
-        { MAXTRRES_S11_B12_I8_D12_V1,   MAXTRRES_S11_B12_I9_D12_V1,
-          MAXTRRES_S11_B12_I10_D12_V1,  MAXTRRES_S11_B12_I11_D12_V1 },
-        { MAXTRRES_S11_B13_I8_D13_V1,   MAXTRRES_S11_B13_I9_D13_V1,
-          MAXTRRES_S11_B13_I10_D13_V1,  MAXTRRES_S11_B13_I11_D13_V1 },
-        { MAXTRRES_S11_B14_I8_D14_V1,   MAXTRRES_S11_B14_I9_D14_V1,
-          MAXTRRES_S11_B14_I10_D14_V1,  MAXTRRES_S11_B14_I11_D14_V1 },
-        { MAXTRRES_S11_B15_I8_D15_V1,   MAXTRRES_S11_B15_I9_D15_V1,
-          MAXTRRES_S11_B15_I10_D15_V1,  MAXTRRES_S11_B15_I11_D15_V1 },
-        { MAXTRRES_S11_B16_I8_D16_V1,   MAXTRRES_S11_B16_I9_D16_V1,
-          MAXTRRES_S11_B16_I10_D16_V1,  MAXTRRES_S11_B16_I11_D16_V1 },
-    },
-
-    {   { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { MAXTRRES_S12_B12_I8_D12_V1,   MAXTRRES_S12_B12_I9_D12_V1,
-          MAXTRRES_S12_B12_I10_D12_V1,  MAXTRRES_S12_B12_I11_D12_V1 },
-        { MAXTRRES_S12_B13_I8_D13_V1,   MAXTRRES_S12_B13_I9_D13_V1,
-          MAXTRRES_S12_B13_I10_D13_V1,  MAXTRRES_S12_B13_I11_D13_V1 },
-        { MAXTRRES_S12_B14_I8_D14_V1,   MAXTRRES_S12_B14_I9_D14_V1,
-          MAXTRRES_S12_B14_I10_D14_V1,  MAXTRRES_S12_B14_I11_D14_V1 },
-        { MAXTRRES_S12_B15_I8_D15_V1,   MAXTRRES_S12_B15_I9_D15_V1,
-          MAXTRRES_S12_B15_I10_D15_V1,  MAXTRRES_S12_B15_I11_D15_V1 },
-        { MAXTRRES_S12_B16_I8_D16_V1,   MAXTRRES_S12_B16_I9_D16_V1,
-          MAXTRRES_S12_B16_I10_D16_V1,  MAXTRRES_S12_B16_I11_D16_V1 },
-    },
-
-    {   { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { MAXTRRES_S13_B13_I8_D13_V1,   MAXTRRES_S13_B13_I9_D13_V1,
-          MAXTRRES_S13_B13_I10_D13_V1,  MAXTRRES_S13_B13_I11_D13_V1 },
-        { MAXTRRES_S13_B14_I8_D14_V1,   MAXTRRES_S13_B14_I9_D14_V1,
-          MAXTRRES_S13_B14_I10_D14_V1,  MAXTRRES_S13_B14_I11_D14_V1 },
-        { MAXTRRES_S13_B15_I8_D15_V1,   MAXTRRES_S13_B15_I9_D15_V1,
-          MAXTRRES_S13_B15_I10_D15_V1,  MAXTRRES_S13_B15_I11_D15_V1 },
-        { MAXTRRES_S13_B16_I8_D16_V1,   MAXTRRES_S13_B16_I9_D16_V1,
-          MAXTRRES_S13_B16_I10_D16_V1,  MAXTRRES_S13_B16_I11_D16_V1 },
-    },
-
-    {   { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { MAXTRRES_S14_B14_I8_D14_V1,   MAXTRRES_S14_B14_I9_D14_V1,
-          MAXTRRES_S14_B14_I10_D14_V1,  MAXTRRES_S14_B14_I11_D14_V1 },
-        { MAXTRRES_S14_B15_I8_D15_V1,   MAXTRRES_S14_B15_I9_D15_V1,
-          MAXTRRES_S14_B15_I10_D15_V1,  MAXTRRES_S14_B15_I11_D15_V1 },
-        { MAXTRRES_S14_B16_I8_D16_V1,   MAXTRRES_S14_B16_I9_D16_V1,
-          MAXTRRES_S14_B16_I10_D16_V1,  MAXTRRES_S14_B16_I11_D16_V1 },
-    },
-
-    {   { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { 0, 0, 0, 0 },
-        { MAXTRRES_S15_B15_I8_D15_V1,   MAXTRRES_S15_B15_I9_D15_V1,
-          MAXTRRES_S15_B15_I10_D15_V1,  MAXTRRES_S15_B15_I11_D15_V1 },
-        { MAXTRRES_S15_B16_I8_D16_V1,   MAXTRRES_S15_B16_I9_D16_V1,
-          MAXTRRES_S15_B16_I10_D16_V1,  MAXTRRES_S15_B16_I11_D16_V1 },
-    },
-};
-
-
-const int max_trres_v2[DFL_S][DFL_B][DFL_I][DFL_D] = {
-
-    /* ssize (7)  x  bsize (8)  x  isize (4)  x  dsize (8) */
-
-    {   {   { MAXTRRES_S9_B9_I8_D9_V2,      MAXTRRES_S9_B9_I8_D10_V2,
-              MAXTRRES_S9_B9_I8_D11_V2,     MAXTRRES_S9_B9_I8_D12_V2,
-              MAXTRRES_S9_B9_I8_D13_V2,     MAXTRRES_S9_B9_I8_D14_V2,
-              MAXTRRES_S9_B9_I8_D15_V2,     MAXTRRES_S9_B9_I8_D16_V2 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            MAXTRRES_S9_B10_I8_D10_V2,
-              MAXTRRES_S9_B10_I8_D11_V2,    MAXTRRES_S9_B10_I8_D12_V2,
-              MAXTRRES_S9_B10_I8_D13_V2,    MAXTRRES_S9_B10_I8_D14_V2,
-              MAXTRRES_S9_B10_I8_D15_V2,    MAXTRRES_S9_B10_I8_D16_V2 },
-            { 0,                            MAXTRRES_S9_B10_I9_D10_V2,
-              MAXTRRES_S9_B10_I9_D11_V2,    MAXTRRES_S9_B10_I9_D12_V2,
-              MAXTRRES_S9_B10_I9_D13_V2,    MAXTRRES_S9_B10_I9_D14_V2,
-              MAXTRRES_S9_B10_I9_D15_V2,    MAXTRRES_S9_B10_I9_D16_V2 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              MAXTRRES_S9_B11_I8_D11_V2,    MAXTRRES_S9_B11_I8_D12_V2,
-              MAXTRRES_S9_B11_I8_D13_V2,    MAXTRRES_S9_B11_I8_D14_V2,
-              MAXTRRES_S9_B11_I8_D15_V2,    MAXTRRES_S9_B11_I8_D16_V2 },
-            { 0,                            0,
-              MAXTRRES_S9_B11_I9_D11_V2,    MAXTRRES_S9_B11_I9_D12_V2,
-              MAXTRRES_S9_B11_I9_D13_V2,    MAXTRRES_S9_B11_I9_D14_V2,
-              MAXTRRES_S9_B11_I9_D15_V2,    MAXTRRES_S9_B11_I9_D16_V2 },
-            { 0,                            0,
-              MAXTRRES_S9_B11_I10_D11_V2,   MAXTRRES_S9_B11_I10_D12_V2,
-              MAXTRRES_S9_B11_I10_D13_V2,   MAXTRRES_S9_B11_I10_D14_V2,
-              MAXTRRES_S9_B11_I10_D15_V2,   MAXTRRES_S9_B11_I10_D16_V2 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              0,                            MAXTRRES_S9_B12_I8_D12_V2,
-              MAXTRRES_S9_B12_I8_D13_V2,    MAXTRRES_S9_B12_I8_D14_V2,
-              MAXTRRES_S9_B12_I8_D15_V2,    MAXTRRES_S9_B12_I8_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S9_B12_I9_D12_V2,
-              MAXTRRES_S9_B12_I9_D13_V2,    MAXTRRES_S9_B12_I9_D14_V2,
-              MAXTRRES_S9_B12_I9_D15_V2,    MAXTRRES_S9_B12_I9_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S9_B12_I10_D12_V2,
-              MAXTRRES_S9_B12_I10_D13_V2,   MAXTRRES_S9_B12_I10_D14_V2,
-              MAXTRRES_S9_B12_I10_D15_V2,   MAXTRRES_S9_B12_I10_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S9_B12_I11_D12_V2,
-              MAXTRRES_S9_B12_I11_D13_V2,   MAXTRRES_S9_B12_I11_D14_V2,
-              MAXTRRES_S9_B12_I11_D15_V2,   MAXTRRES_S9_B12_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B13_I8_D13_V2,    MAXTRRES_S9_B13_I8_D14_V2,
-              MAXTRRES_S9_B13_I8_D15_V2,    MAXTRRES_S9_B13_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B13_I9_D13_V2,    MAXTRRES_S9_B13_I9_D14_V2,
-              MAXTRRES_S9_B13_I9_D15_V2,    MAXTRRES_S9_B13_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B13_I10_D13_V2,   MAXTRRES_S9_B13_I10_D14_V2,
-              MAXTRRES_S9_B13_I10_D15_V2,   MAXTRRES_S9_B13_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B13_I11_D13_V2,   MAXTRRES_S9_B13_I11_D14_V2,
-              MAXTRRES_S9_B13_I11_D15_V2,   MAXTRRES_S9_B13_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B14_I8_D14_V2,
-              MAXTRRES_S9_B14_I8_D15_V2,    MAXTRRES_S9_B14_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B14_I9_D14_V2,
-              MAXTRRES_S9_B14_I9_D15_V2,    MAXTRRES_S9_B14_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B14_I10_D14_V2,
-              MAXTRRES_S9_B14_I10_D15_V2,   MAXTRRES_S9_B14_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B14_I11_D14_V2,
-              MAXTRRES_S9_B14_I11_D15_V2,   MAXTRRES_S9_B14_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B15_I8_D15_V2,    MAXTRRES_S9_B15_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B15_I9_D15_V2,    MAXTRRES_S9_B15_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B15_I10_D15_V2,   MAXTRRES_S9_B15_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S9_B15_I11_D15_V2,   MAXTRRES_S9_B15_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B16_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B16_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B16_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S9_B16_I11_D16_V2 },
-        },
-    },
-
-    {   {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            MAXTRRES_S9_B10_I8_D10_V2,
-              MAXTRRES_S10_B10_I8_D11_V2,   MAXTRRES_S10_B10_I8_D12_V2,
-              MAXTRRES_S10_B10_I8_D13_V2,   MAXTRRES_S10_B10_I8_D14_V2,
-              MAXTRRES_S10_B10_I8_D15_V2,   MAXTRRES_S10_B10_I8_D16_V2 },
-            { 0,                            MAXTRRES_S10_B10_I9_D10_V2,
-              MAXTRRES_S10_B10_I9_D11_V2,   MAXTRRES_S10_B10_I9_D12_V2,
-              MAXTRRES_S10_B10_I9_D13_V2,   MAXTRRES_S10_B10_I9_D14_V2,
-              MAXTRRES_S10_B10_I9_D15_V2,   MAXTRRES_S10_B10_I9_D16_V2 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              MAXTRRES_S10_B11_I8_D11_V2,   MAXTRRES_S10_B11_I8_D12_V2,
-              MAXTRRES_S10_B11_I8_D13_V2,   MAXTRRES_S10_B11_I8_D14_V2,
-              MAXTRRES_S10_B11_I8_D15_V2,   MAXTRRES_S10_B11_I8_D16_V2 },
-            { 0,                            0,
-              MAXTRRES_S10_B11_I9_D11_V2,   MAXTRRES_S10_B11_I9_D12_V2,
-              MAXTRRES_S10_B11_I9_D13_V2,   MAXTRRES_S10_B11_I9_D14_V2,
-              MAXTRRES_S10_B11_I9_D15_V2,   MAXTRRES_S10_B11_I9_D16_V2 },
-            { 0,                            0,
-              MAXTRRES_S10_B11_I10_D11_V2,  MAXTRRES_S10_B11_I10_D12_V2,
-              MAXTRRES_S10_B11_I10_D13_V2,  MAXTRRES_S10_B11_I10_D14_V2,
-              MAXTRRES_S10_B11_I10_D15_V2,  MAXTRRES_S10_B11_I10_D16_V2 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              0,                            MAXTRRES_S10_B12_I8_D12_V2,
-              MAXTRRES_S10_B12_I8_D13_V2,   MAXTRRES_S10_B12_I8_D14_V2,
-              MAXTRRES_S10_B12_I8_D15_V2,   MAXTRRES_S10_B12_I8_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S10_B12_I9_D12_V2,
-              MAXTRRES_S10_B12_I9_D13_V2,   MAXTRRES_S10_B12_I9_D14_V2,
-              MAXTRRES_S10_B12_I9_D15_V2,   MAXTRRES_S10_B12_I9_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S10_B12_I10_D12_V2,
-              MAXTRRES_S10_B12_I10_D13_V2,  MAXTRRES_S10_B12_I10_D14_V2,
-              MAXTRRES_S10_B12_I10_D15_V2,  MAXTRRES_S10_B12_I10_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S10_B12_I11_D12_V2,
-              MAXTRRES_S10_B12_I11_D13_V2,  MAXTRRES_S10_B12_I11_D14_V2,
-              MAXTRRES_S10_B12_I11_D15_V2,  MAXTRRES_S10_B12_I11_D16_V2 },
-        },
-
-        {   { 0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B13_I8_D13_V2,   MAXTRRES_S10_B13_I8_D14_V2,
-              MAXTRRES_S10_B13_I8_D15_V2,   MAXTRRES_S10_B13_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B13_I9_D13_V2,   MAXTRRES_S10_B13_I9_D14_V2,
-              MAXTRRES_S10_B13_I9_D15_V2,   MAXTRRES_S10_B13_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B13_I10_D13_V2,  MAXTRRES_S10_B13_I10_D14_V2,
-              MAXTRRES_S10_B13_I10_D15_V2,  MAXTRRES_S10_B13_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B13_I11_D13_V2,  MAXTRRES_S10_B13_I11_D14_V2,
-              MAXTRRES_S10_B13_I11_D15_V2,  MAXTRRES_S10_B13_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B14_I8_D14_V2,
-              MAXTRRES_S10_B14_I8_D15_V2,   MAXTRRES_S10_B14_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B14_I9_D14_V2,
-              MAXTRRES_S10_B14_I9_D15_V2,   MAXTRRES_S10_B14_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B14_I10_D14_V2,
-              MAXTRRES_S10_B14_I10_D15_V2,  MAXTRRES_S10_B14_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B14_I11_D14_V2,
-              MAXTRRES_S10_B14_I11_D15_V2,  MAXTRRES_S10_B14_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B15_I8_D15_V2,   MAXTRRES_S10_B15_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B15_I9_D15_V2,   MAXTRRES_S10_B15_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B15_I10_D15_V2,  MAXTRRES_S10_B15_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S10_B15_I11_D15_V2,  MAXTRRES_S10_B15_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B16_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B16_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B16_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S10_B16_I11_D16_V2 },
-        },
-    },
-
-    {   {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              MAXTRRES_S11_B11_I8_D11_V2,   MAXTRRES_S11_B11_I8_D12_V2,
-              MAXTRRES_S11_B11_I8_D13_V2,   MAXTRRES_S11_B11_I8_D14_V2,
-              MAXTRRES_S11_B11_I8_D15_V2,   MAXTRRES_S11_B11_I8_D16_V2 },
-            { 0,                            0,
-              MAXTRRES_S11_B11_I9_D11_V2,   MAXTRRES_S11_B11_I9_D12_V2,
-              MAXTRRES_S11_B11_I9_D13_V2,   MAXTRRES_S11_B11_I9_D14_V2,
-              MAXTRRES_S11_B11_I9_D15_V2,   MAXTRRES_S11_B11_I9_D16_V2 },
-            { 0,                            0,
-              MAXTRRES_S11_B11_I10_D11_V2,  MAXTRRES_S11_B11_I10_D12_V2,
-              MAXTRRES_S11_B11_I10_D13_V2,  MAXTRRES_S11_B11_I10_D14_V2,
-              MAXTRRES_S11_B11_I10_D15_V2,  MAXTRRES_S11_B11_I10_D16_V2 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              0,                            MAXTRRES_S11_B12_I8_D12_V2,
-              MAXTRRES_S11_B12_I8_D13_V2,   MAXTRRES_S11_B12_I8_D14_V2,
-              MAXTRRES_S11_B12_I8_D15_V2,   MAXTRRES_S11_B12_I8_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S11_B12_I9_D12_V2,
-              MAXTRRES_S11_B12_I9_D13_V2,   MAXTRRES_S11_B12_I9_D14_V2,
-              MAXTRRES_S11_B12_I9_D15_V2,   MAXTRRES_S11_B12_I9_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S11_B12_I10_D12_V2,
-              MAXTRRES_S11_B12_I10_D13_V2,  MAXTRRES_S11_B12_I10_D14_V2,
-              MAXTRRES_S11_B12_I10_D15_V2,  MAXTRRES_S11_B12_I10_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S11_B12_I11_D12_V2,
-              MAXTRRES_S11_B12_I11_D13_V2,  MAXTRRES_S11_B12_I11_D14_V2,
-              MAXTRRES_S11_B12_I11_D15_V2,  MAXTRRES_S11_B12_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B13_I8_D13_V2,   MAXTRRES_S11_B13_I8_D14_V2,
-              MAXTRRES_S11_B13_I8_D15_V2,   MAXTRRES_S11_B13_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B13_I9_D13_V2,   MAXTRRES_S11_B13_I9_D14_V2,
-              MAXTRRES_S11_B13_I9_D15_V2,   MAXTRRES_S11_B13_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B13_I10_D13_V2,  MAXTRRES_S11_B13_I10_D14_V2,
-              MAXTRRES_S11_B13_I10_D15_V2,  MAXTRRES_S11_B13_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B13_I11_D13_V2,  MAXTRRES_S11_B13_I11_D14_V2,
-              MAXTRRES_S11_B13_I11_D15_V2,  MAXTRRES_S11_B13_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B14_I8_D14_V2,
-              MAXTRRES_S11_B14_I8_D15_V2,   MAXTRRES_S11_B14_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B14_I9_D14_V2,
-              MAXTRRES_S11_B14_I9_D15_V2,   MAXTRRES_S11_B14_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B14_I10_D14_V2,
-              MAXTRRES_S11_B14_I10_D15_V2,  MAXTRRES_S11_B14_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B14_I11_D14_V2,
-              MAXTRRES_S11_B14_I11_D15_V2,  MAXTRRES_S11_B14_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B15_I8_D15_V2,   MAXTRRES_S11_B15_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B15_I9_D15_V2,   MAXTRRES_S11_B15_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B15_I10_D15_V2,  MAXTRRES_S11_B15_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S11_B15_I11_D15_V2,  MAXTRRES_S11_B15_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B16_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B16_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B16_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S11_B16_I11_D16_V2 },
-        },
-    },
-
-    {   {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              0,                            MAXTRRES_S12_B12_I8_D12_V2,
-              MAXTRRES_S12_B12_I8_D13_V2,   MAXTRRES_S12_B12_I8_D14_V2,
-              MAXTRRES_S12_B12_I8_D15_V2,   MAXTRRES_S12_B12_I8_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S12_B12_I9_D12_V2,
-              MAXTRRES_S12_B12_I9_D13_V2,   MAXTRRES_S12_B12_I9_D14_V2,
-              MAXTRRES_S12_B12_I9_D15_V2,   MAXTRRES_S12_B12_I9_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S12_B12_I10_D12_V2,
-              MAXTRRES_S12_B12_I10_D13_V2,  MAXTRRES_S12_B12_I10_D14_V2,
-              MAXTRRES_S12_B12_I10_D15_V2,  MAXTRRES_S12_B12_I10_D16_V2 },
-            { 0,                            0,
-              0,                            MAXTRRES_S12_B12_I11_D12_V2,
-              MAXTRRES_S12_B12_I11_D13_V2,  MAXTRRES_S12_B12_I11_D14_V2,
-              MAXTRRES_S12_B12_I11_D15_V2,  MAXTRRES_S12_B12_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B13_I8_D13_V2,   MAXTRRES_S12_B13_I8_D14_V2,
-              MAXTRRES_S12_B13_I8_D15_V2,   MAXTRRES_S12_B13_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B13_I9_D13_V2,   MAXTRRES_S12_B13_I9_D14_V2,
-              MAXTRRES_S12_B13_I9_D15_V2,   MAXTRRES_S12_B13_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B13_I10_D13_V2,  MAXTRRES_S12_B13_I10_D14_V2,
-              MAXTRRES_S12_B13_I10_D15_V2,  MAXTRRES_S12_B13_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B13_I11_D13_V2,  MAXTRRES_S12_B13_I11_D14_V2,
-              MAXTRRES_S12_B13_I11_D15_V2,  MAXTRRES_S12_B13_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B14_I8_D14_V2,
-              MAXTRRES_S12_B14_I8_D15_V2,   MAXTRRES_S12_B14_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B14_I9_D14_V2,
-              MAXTRRES_S12_B14_I9_D15_V2,   MAXTRRES_S12_B14_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B14_I10_D14_V2,
-              MAXTRRES_S12_B14_I10_D15_V2,  MAXTRRES_S12_B14_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B14_I11_D14_V2,
-              MAXTRRES_S12_B14_I11_D15_V2,  MAXTRRES_S12_B14_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B15_I8_D15_V2,   MAXTRRES_S12_B15_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B15_I9_D15_V2,   MAXTRRES_S12_B15_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B15_I10_D15_V2,  MAXTRRES_S12_B15_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S12_B15_I11_D15_V2,  MAXTRRES_S12_B15_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B16_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B16_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B16_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S12_B16_I11_D16_V2 },
-        },
-    },
-
-    {   {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B13_I8_D13_V2,   MAXTRRES_S13_B13_I8_D14_V2,
-              MAXTRRES_S13_B13_I8_D15_V2,   MAXTRRES_S13_B13_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B13_I9_D13_V2,   MAXTRRES_S13_B13_I9_D14_V2,
-              MAXTRRES_S13_B13_I9_D15_V2,   MAXTRRES_S13_B13_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B13_I10_D13_V2,  MAXTRRES_S13_B13_I10_D14_V2,
-              MAXTRRES_S13_B13_I10_D15_V2,  MAXTRRES_S13_B13_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B13_I11_D13_V2,  MAXTRRES_S13_B13_I11_D14_V2,
-              MAXTRRES_S13_B13_I11_D15_V2,  MAXTRRES_S13_B13_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B14_I8_D14_V2,
-              MAXTRRES_S13_B14_I8_D15_V2,   MAXTRRES_S13_B14_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B14_I9_D14_V2,
-              MAXTRRES_S13_B14_I9_D15_V2,   MAXTRRES_S13_B14_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B14_I10_D14_V2,
-              MAXTRRES_S13_B14_I10_D15_V2,  MAXTRRES_S13_B14_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B14_I11_D14_V2,
-              MAXTRRES_S13_B14_I11_D15_V2,  MAXTRRES_S13_B14_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B15_I8_D15_V2,   MAXTRRES_S13_B15_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B15_I9_D15_V2,   MAXTRRES_S13_B15_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B15_I10_D15_V2,  MAXTRRES_S13_B15_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S13_B15_I11_D15_V2,  MAXTRRES_S13_B15_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B16_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B16_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B16_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S13_B16_I11_D16_V2 },
-        },
-    },
-
-    {   {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B14_I8_D14_V2,
-              MAXTRRES_S14_B14_I8_D15_V2,   MAXTRRES_S14_B14_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B14_I9_D14_V2,
-              MAXTRRES_S14_B14_I9_D15_V2,   MAXTRRES_S14_B14_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B14_I10_D14_V2,
-              MAXTRRES_S14_B14_I10_D15_V2,  MAXTRRES_S14_B14_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B14_I11_D14_V2,
-              MAXTRRES_S14_B14_I11_D15_V2,  MAXTRRES_S14_B14_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S14_B15_I8_D15_V2,   MAXTRRES_S14_B15_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S14_B15_I9_D15_V2,   MAXTRRES_S14_B15_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S14_B15_I10_D15_V2,  MAXTRRES_S14_B15_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S14_B15_I11_D15_V2,  MAXTRRES_S14_B15_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B16_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B16_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B16_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S14_B16_I11_D16_V2 },
-        },
-    },
-
-    {   {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-            { 0, 0, 0, 0, 0, 0, 0, 0 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S15_B15_I8_D15_V2,   MAXTRRES_S15_B15_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S15_B15_I9_D15_V2,   MAXTRRES_S15_B15_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S15_B15_I10_D15_V2,  MAXTRRES_S15_B15_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              MAXTRRES_S15_B15_I11_D15_V2,  MAXTRRES_S15_B15_I11_D16_V2 },
-        },
-        {   { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S15_B16_I8_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S15_B16_I9_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S15_B16_I10_D16_V2 },
-            { 0,                            0,
-              0,                            0,
-              0,                            0,
-              0,                            MAXTRRES_S15_B16_I11_D16_V2 },
-        },
-    },
-};
index 10ca6ebcf1935a32a0ea2ea1fdedaca27c033d58..6d7531d908dcaf73f4d844d25f6a7518212129ce 100644 (file)
@@ -45,7 +45,6 @@ static void reqval(char opt, char *tab[], int idx);
 static void respec(char opt, char *tab[], int idx);
 static void unknown(char opt, char *s);
 static int  ispow2(unsigned int i);
-static int  max_trans_res(xfs_mount_t *mp);
 
 /*
  * option tables for getsubopt calls
@@ -350,6 +349,29 @@ fixup_log_stripe(
        return logstart;
 }
 
+void
+validate_log_size(__uint64_t logblocks, int blocklog, int min_logblocks)
+{
+       if (logblocks < min_logblocks) {
+               fprintf(stderr,
+       _("log size %lld blocks too small, minimum size is %d blocks\n"),
+                       (long long)logblocks, min_logblocks);
+               usage();
+       }
+       if (logblocks > XFS_MAX_LOG_BLOCKS) {
+               fprintf(stderr,
+       _("log size %lld blocks too large, maximum size is %d blocks\n"),
+                       (long long)logblocks, XFS_MAX_LOG_BLOCKS);
+               usage();
+       }
+       if ((logblocks << blocklog) > XFS_MAX_LOG_BYTES) {
+               fprintf(stderr,
+       _("log size %lld bytes too large, maximum size is %d bytes\n"),
+                       (long long)(logblocks << blocklog), XFS_MAX_LOG_BYTES);
+               usage();
+       }
+}
+
 void
 calc_default_ag_geometry(
        int             blocklog,
@@ -513,7 +535,6 @@ main(
        int                     dswidth;
        int                     extent_flagging;
        int                     force_overwrite;
-       int                     i;
        int                     iaflag;
        int                     ilflag;
        int                     imaxpct;
@@ -543,6 +564,7 @@ main(
        int                     lssflag;
        int                     lsu;
        int                     lsunit;
+       int                     max_tr_res;
        int                     min_logblocks;
        xfs_mount_t             *mp;
        xfs_mount_t             mbuf;
@@ -753,10 +775,10 @@ main(
                                case D_UNWRITTEN:
                                        if (!value)
                                                reqval('d', dopts, D_UNWRITTEN);
-                                       i = atoi(value);
-                                       if (i < 0 || i > 1)
+                                       c = atoi(value);
+                                       if (c < 0 || c > 1)
                                                illegal(value, "d unwritten");
-                                       extent_flagging = i;
+                                       extent_flagging = c;
                                        break;
                                case D_SECTLOG:
                                        if (!value)
@@ -1538,17 +1560,11 @@ reported by the device (%u).\n"),
                        sectorsize, xi.rtbsize);
        }
 
-       if (dirversion == 1)
-               i = max_trres_v1[sectorlog - XFS_MIN_SECTORSIZE_LOG]
-                               [blocklog - XFS_MIN_BLOCKSIZE_LOG]
-                               [inodelog - XFS_DINODE_MIN_LOG];
-       else
-               i = max_trres_v2[sectorlog - XFS_MIN_SECTORSIZE_LOG]
-                               [blocklog - XFS_MIN_BLOCKSIZE_LOG]
-                               [inodelog - XFS_DINODE_MIN_LOG]
-                               [dirblocklog - XFS_MIN_BLOCKSIZE_LOG];
-       ASSERT(i);
-       min_logblocks = MAX(XFS_MIN_LOG_BLOCKS, i * XFS_MIN_LOG_FACTOR);
+       max_tr_res = max_trans_res(dirversion,
+                                  sectorlog, blocklog, inodelog, dirblocklog);
+       ASSERT(max_tr_res);
+       min_logblocks = max_tr_res * XFS_MIN_LOG_FACTOR;
+       min_logblocks = MAX(XFS_MIN_LOG_BLOCKS, min_logblocks);
        if (!logsize && dblocks >= (1024*1024*1024) >> blocklog)
                min_logblocks = MAX(min_logblocks, (10*1024*1024)>>blocklog);
        if (logsize && xi.logBBsize > 0 && logblocks > DTOBT(xi.logBBsize)) {
@@ -1556,9 +1572,9 @@ reported by the device (%u).\n"),
 _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"),
                        logsize, (long long)DTOBT(xi.logBBsize));
                usage();
-       } else if (!logsize && xi.logBBsize > 0)
+       } else if (!logsize && xi.logBBsize > 0) {
                logblocks = DTOBT(xi.logBBsize);
-       else if (logsize && !xi.logdev && !loginternal) {
+       else if (logsize && !xi.logdev && !loginternal) {
                fprintf(stderr,
                        _("size specified for non-existent log subvolume\n"));
                usage();
@@ -1566,9 +1582,9 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"),
                fprintf(stderr, _("size %lld too large for internal log\n"),
                        (long long)logblocks);
                usage();
-       } else if (!loginternal && !xi.logdev)
+       } else if (!loginternal && !xi.logdev) {
                logblocks = 0;
-       else if (loginternal && !logsize) {
+       else if (loginternal && !logsize) {
                /*
                 * logblocks grows from min_logblocks to XFS_MAX_LOG_BLOCKS
                 * at 128GB
@@ -1579,30 +1595,15 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"),
                logblocks = logblocks >> blocklog;
                logblocks = MAX(min_logblocks, logblocks);
                logblocks = MAX(logblocks,
-                               MAX(XFS_DFL_LOG_SIZE, i * XFS_DFL_LOG_FACTOR));
+                               MAX(XFS_DFL_LOG_SIZE,
+                                       max_tr_res * XFS_DFL_LOG_FACTOR));
                logblocks = MIN(logblocks, XFS_MAX_LOG_BLOCKS); 
                if ((logblocks << blocklog) > XFS_MAX_LOG_BYTES) {
                        logblocks = XFS_MAX_LOG_BYTES >> blocklog;
                }
-       } 
-       if (logblocks < min_logblocks) {
-               fprintf(stderr,
-       _("log size %lld blocks too small, minimum size is %d blocks\n"),
-                       (long long)logblocks, min_logblocks);
-               usage();
-       }
-       if (logblocks > XFS_MAX_LOG_BLOCKS) {
-               fprintf(stderr,
-       _("log size %lld blocks too large, maximum size is %d blocks\n"),
-                       (long long)logblocks, XFS_MAX_LOG_BLOCKS);
-               usage();
-       }
-       if ((logblocks << blocklog) > XFS_MAX_LOG_BYTES) {
-               fprintf(stderr,
-       _("log size %lld bytes too large, maximum size is %d bytes\n"),
-                       (long long)(logblocks << blocklog), XFS_MAX_LOG_BYTES);
-               usage();
        }
+       validate_log_size(logblocks, blocklog, min_logblocks);
+
        if (rtsize && xi.rtsize > 0 && rtblocks > DTOBT(xi.rtsize)) {
                fprintf(stderr,
                        _("size %s specified for rt subvolume is too large, "
@@ -1851,6 +1852,9 @@ an AG size that is one stripe unit smaller, for example %llu.\n"),
                                        agsize, dsunit, &logblocks, blocklog,
                                        &lalign);
                }
+               min_logblocks = max_tr_res * XFS_MIN_LOG_FACTOR;
+               min_logblocks = MAX(min_logblocks, XFS_MIN_LOG_BLOCKS);
+               validate_log_size(logblocks, blocklog, min_logblocks);
        } else
                logstart = 0;
 
@@ -1994,14 +1998,6 @@ an AG size that is one stripe unit smaller, for example %llu.\n"),
                        progname);
                exit(1);
        }
-       if (xi.logdev &&
-           XFS_FSB_TO_B(mp, logblocks) <
-           XFS_MIN_LOG_FACTOR * max_trans_res(mp)) {
-               fprintf(stderr,
-       _("%s: log size (%lld) is too small for transaction reservations\n"),
-                       progname, (long long)logblocks);
-               exit(1);
-       }
 
        for (agno = 0; agno < agcount; agno++) {
                /*
@@ -2068,8 +2064,8 @@ an AG size that is one stripe unit smaller, for example %llu.\n"),
                INT_SET(agi->agi_freecount, ARCH_CONVERT, 0);
                INT_SET(agi->agi_newino, ARCH_CONVERT, NULLAGINO);
                INT_SET(agi->agi_dirino, ARCH_CONVERT, NULLAGINO);
-               for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++)
-                       INT_SET(agi->agi_unlinked[i], ARCH_CONVERT, NULLAGINO);
+               for (c = 0; c < XFS_AGI_UNLINKED_BUCKETS; c++)
+                       INT_SET(agi->agi_unlinked[c], ARCH_CONVERT, NULLAGINO);
                libxfs_writebuf(buf, LIBXFS_EXIT_ON_FAILURE);
 
                /*
@@ -2206,8 +2202,8 @@ an AG size that is one stripe unit smaller, for example %llu.\n"),
                args.agno = agno;
                args.alignment = 1;
                args.pag = &mp->m_perag[agno];
-               if ((i = libxfs_trans_reserve(tp, worst_freelist, 0, 0, 0, 0)))
-                       res_failed(i);
+               if ((c = libxfs_trans_reserve(tp, worst_freelist, 0, 0, 0, 0)))
+                       res_failed(c);
                libxfs_alloc_fix_freelist(&args, 0);
                libxfs_trans_commit(tp, 0, NULL);
        }
@@ -2275,23 +2271,6 @@ an AG size that is one stripe unit smaller, for example %llu.\n"),
        return 0;
 }
 
-static int
-max_trans_res(
-       xfs_mount_t                     *mp)
-{
-       uint                            *p;
-       int                             rval;
-       xfs_trans_reservations_t        *tr;
-
-       tr = &mp->m_reservations;
-
-       for (rval = 0, p = (uint *)tr; p < (uint *)(tr + 1); p++) {
-               if ((int)*p > rval)
-                       rval = (int)*p;
-       }
-       return rval;
-}
-
 static void
 conflict(
        char            opt,
index 8236a1ef87e0bae27a63895f7a4dae6f80478121..79387f9843503aedc75aa7879c75b1ff318fd02c 100644 (file)
@@ -67,13 +67,8 @@ extern char *setup_proto (char *fname);
 extern void parseproto (xfs_mount_t *mp, xfs_inode_t *pip, char **pp, char *n);
 extern void res_failed (int err);
 
-#define DFL_S  (XFS_MAX_SECTORSIZE_LOG + 1 - XFS_MIN_SECTORSIZE_LOG)  /* 7 */
-#define DFL_B  (XFS_MAX_BLOCKSIZE_LOG  + 1 - XFS_MIN_BLOCKSIZE_LOG)   /* 8 */
-#define DFL_I  (XFS_DINODE_MAX_LOG     + 1 - XFS_DINODE_MIN_LOG)      /* 4 */
-#define DFL_D  (XFS_MAX_BLOCKSIZE_LOG  + 1 - XFS_MIN_BLOCKSIZE_LOG)   /* 8 */
-
-/* trtab.c */
-extern const int max_trres_v1[DFL_S][DFL_B][DFL_I];
-extern const int max_trres_v2[DFL_S][DFL_B][DFL_I][DFL_D];
+/* maxtrres.c */ 
+extern int max_trans_res (int dirversion,
+               int sectorlog, int blocklog, int inodelog, int dirblocklog);
 
 #endif /* __XFS_MKFS_H__ */