From 9ca58c8d0a1eeab51ea5737f9cebb6c4b30c2068 Mon Sep 17 00:00:00 2001 From: Bob Glossman Date: Mon, 4 Nov 2013 09:55:54 -0800 Subject: [PATCH] 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. Lustre-commit: 3052583f5e89b4b4294a4df05939e749be22df3d Lustre-change: http://review.whamcloud.com/5942 Signed-off-by: Bob Glossman Signed-off-by: Girish Shilamkar Reviewed-by: Jian Yu Reviewed-by: Andreas Dilger Change-Id: I042bbd0ab2157b397c21095857e2011a18f54c98 Reviewed-on: http://review.whamcloud.com/8164 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: James Nunez Reviewed-by: Oleg Drokin --- lustre/tests/conf-sanity.sh | 27 +++++++++++++++++++++++++++ lustre/utils/mkfs_lustre.c | 18 ++++++++++-------- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index 6d80504..897b402 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.2) ]] && + skip "Need MDS version at least 2.4.2" && 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" + test_77() { # LU-3445 local server_version=$(lustre_version_code $SINGLEMDS) 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)) { -- 1.8.3.1