From: Girish Shilamkar Date: Mon, 20 May 2013 08:11:55 +0000 (+0530) Subject: LU-2374 mkfs: Make order of --index and --ost irrelevant X-Git-Tag: 2.4.53~43 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=3052583f5e89b4b4294a4df05939e749be22df3d LU-2374 mkfs: Make order of --index and --ost irrelevant The order of --index and --ost should not prevent mkfs.lustre to work. So reordered the checks which ensure that mkfs with index is done for ost and mdt only. Signed-off-by: Girish Shilamkar Change-Id: I228f6c9189aa85a5565393523d39e8e27e0eaddc Reviewed-on: http://review.whamcloud.com/5942 Tested-by: Hudson Reviewed-by: Jian Yu Tested-by: Maloo Reviewed-by: Andreas Dilger --- diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index 6575658..fb5db0c 100644 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -4089,6 +4089,33 @@ test_74() { # LU-1606 } run_test 74 "Lustre client api program can compile and link" +test_75() { # LU-2374 + [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.4.1) ]] && + skip "Need MDS version at least 2.4.1" && return + + local index=0 + local opts_mds="$(mkfs_opts mds1 $(mdsdevname 1)) \ + --reformat $(mdsdevname 1) $(mdsvdevname 1)" + local opts_ost="$(mkfs_opts ost1 $(ostdevname 1)) \ + --reformat $(ostdevname 1) $(ostvdevname 1)" + + #check with default parameters + add mds1 $opts_mds || error "add mds1 failed for default params" + add ost1 $opts_ost || error "add ost1 failed for default params" + + opts_mds=$(echo $opts_mds | sed -e "s/--mdt//") + opts_mds=$(echo $opts_mds | + sed -e "s/--index=$index/--index=$index --mdt/") + opts_ost=$(echo $opts_ost | sed -e "s/--ost//") + opts_ost=$(echo $opts_ost | + sed -e "s/--index=$index/--index=$index --ost/") + + add mds1 $opts_mds || error "add mds1 failed for new params" + add ost1 $opts_ost || error "add ost1 failed for new params" + return 0 +} +run_test 75 "The order of --index should be irrelevant" + if ! combined_mgs_mds ; then stop mgs fi diff --git a/lustre/utils/mkfs_lustre.c b/lustre/utils/mkfs_lustre.c index 87ba9b6..fa36098 100644 --- a/lustre/utils/mkfs_lustre.c +++ b/lustre/utils/mkfs_lustre.c @@ -402,13 +402,9 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop, " a registered target\n", progname); return 1; } - if (IS_MDT(&mop->mo_ldd) || IS_OST(&mop->mo_ldd)) { - mop->mo_ldd.ldd_svindex = atol(optarg); - mop->mo_ldd.ldd_flags &= ~LDD_F_NEED_INDEX; - } else { - badopt(long_opt[longidx].name, "MDT,OST"); - return 1; - } + /* LU-2374: check whether it is OST/MDT later */ + mop->mo_ldd.ldd_svindex = atol(optarg); + mop->mo_ldd.ldd_flags &= ~LDD_F_NEED_INDEX; break; case 'k': strscpy(mop->mo_mkfsopts, optarg, @@ -629,8 +625,14 @@ int main(int argc, char *const argv[]) } /* Stand alone MGS doesn't need a index */ - if (!IS_MDT(ldd) && IS_MGS(ldd)) + if (!IS_MDT(ldd) && IS_MGS(ldd)) { + /* But if --index was specified flag an error */ + if (!(mop.mo_ldd.ldd_flags & LDD_F_NEED_INDEX)) { + badopt("--index", "MDT,OST"); + goto out; + } mop.mo_ldd.ldd_flags &= ~LDD_F_NEED_INDEX; + } if ((mop.mo_ldd.ldd_flags & (LDD_F_NEED_INDEX | LDD_F_UPGRADE14)) == (LDD_F_NEED_INDEX | LDD_F_UPGRADE14)) {