mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
lvcreate: regression fix on lv name limits
When we are given an existing LV name - it needs to be allowed to pass in even restricted name as the LV could have existed long before we introduced some new restriction on prefix/suffix.i Fix the regression on name limits and drop restriction to be applied on any existing LVs - only the new created LV names have to be complient with current name restrictions. FIXME: we are currently using restricted names incorrectly in few other places - device_is_usable() skips restricted names, and udev flags are also incorrectly set for restricted names so these LVs are not getting links properly.
This commit is contained in:
parent
27ff61d012
commit
0cbb381e15
@ -7172,6 +7172,9 @@ struct logical_volume *lv_create_single(struct volume_group *vg,
|
|||||||
!(lp->segtype = get_segtype_from_string(vg->cmd, "thin-pool")))
|
!(lp->segtype = get_segtype_from_string(vg->cmd, "thin-pool")))
|
||||||
return_NULL;
|
return_NULL;
|
||||||
|
|
||||||
|
if (lp->pool_name && !apply_lvname_restrictions(lp->pool_name))
|
||||||
|
return_NULL;
|
||||||
|
|
||||||
if (!(lv = _lv_create_an_lv(vg, lp, lp->pool_name)))
|
if (!(lv = _lv_create_an_lv(vg, lp, lp->pool_name)))
|
||||||
return_NULL;
|
return_NULL;
|
||||||
|
|
||||||
@ -7188,6 +7191,9 @@ struct logical_volume *lv_create_single(struct volume_group *vg,
|
|||||||
"cache-pool")))
|
"cache-pool")))
|
||||||
return_NULL;
|
return_NULL;
|
||||||
|
|
||||||
|
if (lp->pool_name && !apply_lvname_restrictions(lp->pool_name))
|
||||||
|
return_NULL;
|
||||||
|
|
||||||
if (!(lv = _lv_create_an_lv(vg, lp, lp->pool_name)))
|
if (!(lv = _lv_create_an_lv(vg, lp, lp->pool_name)))
|
||||||
return_NULL;
|
return_NULL;
|
||||||
|
|
||||||
|
@ -54,6 +54,9 @@ static int _lvcreate_name_params(struct lvcreate_params *lp,
|
|||||||
if (!validate_lvname_param(cmd, &lp->vg_name, &lp->lv_name))
|
if (!validate_lvname_param(cmd, &lp->vg_name, &lp->lv_name))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
|
if (lp->lv_name && !apply_lvname_restrictions(lp->lv_name))
|
||||||
|
return_0;
|
||||||
|
|
||||||
lp->pool_name = arg_str_value(cmd, thinpool_ARG, NULL)
|
lp->pool_name = arg_str_value(cmd, thinpool_ARG, NULL)
|
||||||
? : arg_str_value(cmd, cachepool_ARG, NULL);
|
? : arg_str_value(cmd, cachepool_ARG, NULL);
|
||||||
if (!validate_lvname_param(cmd, &lp->vg_name, &lp->pool_name))
|
if (!validate_lvname_param(cmd, &lp->vg_name, &lp->pool_name))
|
||||||
|
@ -1300,9 +1300,6 @@ int validate_lvname_param(struct cmd_context *cmd, const char **vg_name,
|
|||||||
*lv_name = lvname;
|
*lv_name = lvname;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!apply_lvname_restrictions(*lv_name))
|
|
||||||
return_0;
|
|
||||||
|
|
||||||
if (!validate_name(*lv_name)) {
|
if (!validate_name(*lv_name)) {
|
||||||
log_error("Logical volume name \"%s\" is invalid.",
|
log_error("Logical volume name \"%s\" is invalid.",
|
||||||
*lv_name);
|
*lv_name);
|
||||||
|
Loading…
Reference in New Issue
Block a user