Whamcloud - gitweb
LU-2374 mkfs: Make order of --index and --ost irrelevant 64/8164/3
authorBob Glossman <bob.glossman@intel.com>
Mon, 4 Nov 2013 17:55:54 +0000 (09:55 -0800)
committerOleg Drokin <oleg.drokin@intel.com>
Sun, 17 Nov 2013 04:23:08 +0000 (04:23 +0000)
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 <bob.glossman@intel.com>
Signed-off-by: Girish Shilamkar <gshilamkar@ddn.com>
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I042bbd0ab2157b397c21095857e2011a18f54c98
Reviewed-on: http://review.whamcloud.com/8164
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Nunez <james.a.nunez@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/tests/conf-sanity.sh
lustre/utils/mkfs_lustre.c

index 6d80504..897b402 100644 (file)
@@ -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)
 
index 87ba9b6..fa36098 100644 (file)
@@ -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)) {