mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
lvconvert: Move stripe validation code later.
Simpler to delay it all until the actual LV being changed is available, rather than having it split in two parts.
This commit is contained in:
parent
4ffe15bf6a
commit
b3fbcd1ff7
@ -808,23 +808,6 @@ static int _read_params(struct cmd_context *cmd, int argc, char **argv,
|
|||||||
return 0;
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4393,6 +4376,23 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
|
|||||||
if (!lp->segtype)
|
if (!lp->segtype)
|
||||||
lp->segtype = seg->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.
|
* Each LV type that can be converted.
|
||||||
* (The existing type of the LV, not a requested type.)
|
* (The existing type of the LV, not a requested type.)
|
||||||
|
Loading…
Reference in New Issue
Block a user