Whamcloud - gitweb
LU-2374 mkfs: Make order of --index and --ost irrelevant 42/5942/6
authorGirish Shilamkar <gshilamkar@ddn.com>
Mon, 20 May 2013 08:11:55 +0000 (13:41 +0530)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 23 Jul 2013 05:48:04 +0000 (05:48 +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.

Signed-off-by: Girish Shilamkar <gshilamkar@ddn.com>
Change-Id: I228f6c9189aa85a5565393523d39e8e27e0eaddc
Reviewed-on: http://review.whamcloud.com/5942
Tested-by: Hudson
Reviewed-by: Jian Yu <jian.yu@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/tests/conf-sanity.sh
lustre/utils/mkfs_lustre.c

index 6575658..fb5db0c 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.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
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)) {