diff options
author | Dave Chinner <dchinner@redhat.com> | 2017-12-06 17:28:02 -0600 |
---|---|---|
committer | Eric Sandeen <sandeen@redhat.com> | 2017-12-06 17:28:02 -0600 |
commit | b449c79e779d44fe6cbfc309f2bbacb43f4f4dc0 (patch) | |
tree | 785e4c0182d8979089f77aa14eae3baecdece598 | |
parent | e3bc8390d699f5cf86f79e4524e3889e66b531b9 (diff) | |
download | xfsprogs-dev-b449c79e779d44fe6cbfc309f2bbacb43f4f4dc0.tar.gz |
mkfs: cleanup redundant temporary code
Now the factoring is complete, we can remove the remaining temporary
code that was used to isolate the factoring from the rest of the
code.
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r-- | mkfs/xfs_mkfs.c | 183 |
1 files changed, 34 insertions, 149 deletions
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 19ffa38bfd..f252983b89 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -33,8 +33,8 @@ static void unknown(char opt, char *s); static int ispow2(unsigned int i); /* - * The configured block and sector sizes are defined as global variables so - * that they don't need to be passed to functions that require them. + * XXX: The configured block and sector sizes are defined as global variables so + * that they don't need to be passed to getnum/cvtnum(). */ unsigned int blocksize; unsigned int sectorsize; @@ -3675,52 +3675,34 @@ main( int argc, char **argv) { - uint64_t agcount; xfs_agnumber_t agno; - uint64_t agsize; - int blocklog; xfs_buf_t *buf; int c; - xfs_rfsblock_t dblocks; - char *dfile; - int dirblocklog; - int dirblocksize; - int dsunit; - int dswidth; - int force_overwrite; - struct fsxattr fsx; - int imaxpct; - int inodelog; - int inopblock; - int isize; - char *label = NULL; - xfs_agnumber_t logagno; - xfs_rfsblock_t logblocks; - char *logfile; - int loginternal; - xfs_fsblock_t logstart; - int lsectorlog; - int lsectorsize; - int lsunit; - xfs_extlen_t nbmblocks; + char *dfile = NULL; + char *logfile = NULL; + char *rtfile = NULL; int dry_run = 0; int discard = 1; - char *protofile; - char *protostring; + int force_overwrite = 0; int quiet = 0; - xfs_rfsblock_t rtblocks; - xfs_extlen_t rtextblocks; - xfs_rtblock_t rtextents; - char *rtfile; - int sectorlog; - uuid_t uuid; - int worst_freelist; - libxfs_init_t xi; + char *protofile = NULL; + char *protostring = NULL; + int worst_freelist = 0; + + struct libxfs_xinit xi = { + .isdirect = LIBXFS_DIRECT, + .isreadonly = LIBXFS_EXCLUSIVELY, + }; struct xfs_mount mbuf = {}; struct xfs_mount *mp = &mbuf; struct xfs_sb *sbp = &mp->m_sb; - struct fs_topology ft; - struct sb_feat_args sb_feat; + struct fs_topology ft = {}; + struct cli_params cli = { + .xi = &xi, + .loginternal = 1, + }; + struct mkfs_params cfg = {}; + /* build time defaults */ struct mkfs_default_params dft = { .source = "package build definitions", @@ -3745,10 +3727,6 @@ main( .nortalign = false, }, }; - struct cli_params cli = { - .xi = &xi, - }; - struct mkfs_params cfg = {}; platform_uuid_generate(&cli.uuid); progname = basename(argv[0]); @@ -3772,28 +3750,6 @@ main( memcpy(&cli.sb_feat, &dft.sb_feat, sizeof(cli.sb_feat)); memcpy(&cli.fsx, &dft.fsx, sizeof(cli.fsx)); - /* - * Initialise cli parameters that can be set to zero to an appropriate - * value so we can tell if they have been set or or changed from the - * default value. - */ - cli.loginternal = 1; /* internal by default */ - - agsize = dblocks = 0; - loginternal = 1; - logagno = logblocks = rtblocks = rtextblocks = 0; - imaxpct = inodelog = inopblock = isize = 0; - dfile = logfile = rtfile = NULL; - protofile = NULL; - dsunit = dswidth = lsunit = 0; - force_overwrite = 0; - worst_freelist = 0; - memset(&fsx, 0, sizeof(fsx)); - - memset(&xi, 0, sizeof(xi)); - xi.isdirect = LIBXFS_DIRECT; - xi.isreadonly = LIBXFS_EXCLUSIVELY; - while ((c = getopt(argc, argv, "b:d:i:l:L:m:n:KNp:qr:s:CfV")) != EOF) { switch (c) { case 'C': @@ -3801,33 +3757,19 @@ main( force_overwrite = 1; break; case 'b': + case 'd': case 'i': case 'l': + case 'm': case 'n': case 'r': case 's': parse_subopts(c, optarg, &cli); break; - case 'd': - parse_subopts(c, optarg, &cli); - - /* temp don't break code */ - fsx.fsx_xflags |= cli.fsx.fsx_xflags; - fsx.fsx_projid = cli.fsx.fsx_projid; - fsx.fsx_extsize = cli.fsx.fsx_extsize; - /* end temp don't break code */ - break; case 'L': if (strlen(optarg) > sizeof(sbp->sb_fname)) illegal(optarg, "L"); - label = optarg; - break; - case 'm': - parse_subopts(c, optarg, &cli); - - /* temp don't break code */ - platform_uuid_copy(&uuid, &cli.uuid); - /* end temp don't break code */ + cfg.label = optarg; break; case 'N': dry_run = 1; @@ -3858,9 +3800,7 @@ main( } else dfile = xi.dname; - /* temp don't break code */ - sb_feat = cli.sb_feat; - /* end temp don't break code */ + protostring = setup_proto(protofile); /* * Extract as much of the valid config as we can from the CLI input @@ -3869,6 +3809,14 @@ main( validate_blocksize(&cfg, &cli, &dft); validate_sectorsize(&cfg, &cli, &dft, &ft, dfile, dry_run, force_overwrite); + + /* + * XXX: we still need to set block size and sector size global variables + * so that getnum/cvtnum works correctly + */ + blocksize = cfg.blocksize; + sectorsize = cfg.sectorsize; + validate_log_sectorsize(&cfg, &cli, &dft); validate_sb_features(&cfg, &cli); @@ -3926,69 +3874,6 @@ main( protostring = setup_proto(protofile); - /* temp don't break code */ - sectorsize = cfg.sectorsize; - sectorlog = cfg.sectorlog; - blocksize = cfg.blocksize; - blocklog = cfg.blocklog; - lsectorsize = cfg.lsectorsize; - lsectorlog = cfg.lsectorlog; - platform_uuid_copy(&uuid, &cfg.uuid); - sb_feat = cfg.sb_feat; - dirblocksize = cfg.dirblocksize; - dirblocklog = cfg.dirblocklog; - isize = cfg.inodesize; - inodelog = cfg.inodelog; - inopblock = cfg.inopblock; - dblocks = cfg.dblocks; - logblocks = cfg.logblocks; - rtblocks = cfg.rtblocks; - rtextblocks = cfg.rtextblocks; - nbmblocks = cfg.rtbmblocks; - rtextents = cfg.rtextents; - dsunit = cfg.dsunit; - dswidth = cfg.dswidth; - lsunit = cfg.lsunit; - agsize = cfg.agsize; - agcount = cfg.agcount; - imaxpct = cfg.imaxpct; - logagno = cfg.logagno; - logstart = cfg.logstart; - /* end temp don't break code */ - - /* Temp support code to set up mkfs cfg parameters */ - cfg.blocksize = blocksize; - cfg.blocklog = blocklog; - cfg.sectorsize = sectorsize; - cfg.sectorlog = sectorlog; - cfg.lsectorsize = lsectorsize; - cfg.lsectorlog = lsectorlog; - cfg.dirblocksize = dirblocksize; - cfg.dirblocklog = dirblocklog; - cfg.inodesize = isize; - cfg.inodelog = inodelog; - cfg.inopblock = inopblock; - - cfg.dblocks = dblocks; - cfg.logblocks = logblocks; - cfg.rtblocks = rtblocks; - cfg.rtextblocks = rtextblocks; - cfg.rtextents = rtextents; - cfg.rtbmblocks = nbmblocks; - cfg.dsunit = dsunit; - cfg.dswidth = dswidth; - cfg.lsunit = lsunit; - cfg.agsize = agsize; - cfg.agcount = agcount; - cfg.imaxpct = imaxpct; - cfg.loginternal = loginternal; - cfg.logstart = logstart; - cfg.logagno = logagno; - cfg.label = label; - platform_uuid_copy(&cfg.uuid, &uuid); - memcpy(&cfg.sb_feat, &sb_feat, sizeof(sb_feat)); - /* end temp support code */ - if (!quiet || dry_run) { print_mkfs_cfg(&cfg, dfile, logfile, rtfile); if (dry_run) @@ -4033,7 +3918,7 @@ main( /* * Allocate the root inode and anything else in the proto file. */ - parse_proto(mp, &fsx, &protostring); + parse_proto(mp, &cli.fsx, &protostring); /* * Protect ourselves against possible stupidity |