From: Allison Henderson <allison.henderson@xxxxxxxxxx> While investigating another mkfs bug, noticed that cfg->lsunit is sometimes left uninitialized when it should not. This is because calc_stripe_factors in some cases needs cfg->loginternal to be set first. This is done in validate_logdev. So move calc_stripe_factors below validate_logdev while parsing configs. Signed-off-by: Allison Collins <allison.henderson@xxxxxxxxxx> Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> --- mkfs/xfs_mkfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 468b8fd..6e32403 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -3861,15 +3861,15 @@ main( .isdirect = LIBXFS_DIRECT, .isreadonly = LIBXFS_EXCLUSIVELY, }; - struct xfs_mount mbuf = {}; + struct xfs_mount mbuf = {0}; struct xfs_mount *mp = &mbuf; struct xfs_sb *sbp = &mp->m_sb; - struct fs_topology ft = {}; + struct fs_topology ft = {0}; struct cli_params cli = { .xi = &xi, .loginternal = 1, }; - struct mkfs_params cfg = {}; + struct mkfs_params cfg = {0}; /* build time defaults */ struct mkfs_default_params dft = { @@ -4008,7 +4008,6 @@ main( cfg.rtblocks = calc_dev_size(cli.rtsize, &cfg, &ropts, R_SIZE, "rt"); validate_rtextsize(&cfg, &cli, &ft); - calc_stripe_factors(&cfg, &cli, &ft); /* * Open and validate the device configurations @@ -4018,6 +4017,7 @@ main( validate_datadev(&cfg, &cli); validate_logdev(&cfg, &cli, &logfile); validate_rtdev(&cfg, &cli, &rtfile); + calc_stripe_factors(&cfg, &cli, &ft); /* * At this point when know exactly what size all the devices are, -- 2.7.4