]> sourceware.org Git - lvm2.git/commitdiff
lvconvert: Move stripe validation code later.
authorAlasdair G Kergon <agk@redhat.com>
Sat, 30 Jul 2016 01:52:06 +0000 (02:52 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Sat, 30 Jul 2016 01:52:06 +0000 (02:52 +0100)
Simpler to delay it all until the actual LV being changed is available,
rather than having it split in two parts.

tools/lvconvert.c

index 33c7ffb9d1469a3273c30d50ed3a67c80445c1b5..b9aef5317858f4c5770a0adfe69ab77850b35cb3 100644 (file)
@@ -808,23 +808,6 @@ static int _read_params(struct cmd_context *cmd, int argc, char **argv,
                return 0;
        }
 
-       /* Process striping parameters */
-       /* FIXME This is incomplete */
-       if (_mirror_or_raid_type_requested(cmd, lp->type_str) || _raid0_type_requested(lp->type_str) ||
-           _striped_type_requested(lp->type_str) || lp->repair || lp->mirrorlog || lp->corelog) {
-               if (!get_stripe_params(cmd, lp->segtype, &lp->stripes, &lp->stripe_size))
-                       return_0;
-
-               if (_raid0_type_requested(lp->type_str) || _striped_type_requested(lp->type_str))
-                       /* FIXME Shouldn't need to override get_stripe_params which defaults to 1 stripe (i.e. linear)! */
-                       /* The default keeps existing number of stripes, handled inside the library code */
-                       if (!arg_is_set(cmd, stripes_long_ARG) && !_linear_type_requested(lp->type_str))
-                               lp->stripes = 0;
-       }
-
-       if (lp->snapshot)
-               lp->zero = (lp->segtype->flags & SEG_CANNOT_BE_ZEROED) ? 0 : arg_int_value(cmd, zero_ARG, 1);
-
        return 1;
 }
 
@@ -4393,6 +4376,23 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
        if (!lp->segtype)
                lp->segtype = seg->segtype;
 
+       /* Process striping parameters */
+       /* FIXME This is incomplete */
+       if (_mirror_or_raid_type_requested(cmd, lp->type_str) || _raid0_type_requested(lp->type_str) ||
+           _striped_type_requested(lp->type_str) || lp->repair || lp->mirrorlog || lp->corelog) {
+               if (!get_stripe_params(cmd, lp->segtype, &lp->stripes, &lp->stripe_size))
+                       return_0;
+
+               if (_raid0_type_requested(lp->type_str) || _striped_type_requested(lp->type_str))
+                       /* FIXME Shouldn't need to override get_stripe_params which defaults to 1 stripe (i.e. linear)! */
+                       /* The default keeps existing number of stripes, handled inside the library code */
+                       if (!arg_is_set(cmd, stripes_long_ARG) && !_linear_type_requested(lp->type_str))
+                               lp->stripes = 0;
+       }
+
+       if (lp->snapshot)
+               lp->zero = (lp->segtype->flags & SEG_CANNOT_BE_ZEROED) ? 0 : arg_int_value(cmd, zero_ARG, 1);
+
        /*
         * Each LV type that can be converted.
         * (The existing type of the LV, not a requested type.)
This page took 0.044102 seconds and 5 git commands to generate.