1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-03 05:18:29 +03:00

Detect VG name being part of the LV name in lvconvert --splitmirrors -n.

Before:
devel/~ # lvconvert --splitmirrors 1 -n vg/splitted_one vg/mirrored_one
  Internal error: LV name vg/splitted_one has invalid form.
  Intermediate VG metadata write failed.

After:
devel/~ # lvconvert --splitmirrors 1 -n vg/splitted_one vg/mirrored_one
  Logical volume mirrored_one converted.

devel/~ # lvconvert --splitmirrors 1 -n abc/splitted_one vg/mirrored_one
  Please use a single volume group name ("vg" or "abc")
  Run `lvconvert --help' for more information.
This commit is contained in:
Peter Rajnoha 2012-03-30 08:58:02 +00:00
parent 8a81716325
commit 543eaed88c
2 changed files with 14 additions and 3 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.96 - Version 2.02.96 -
================================ ================================
Detect VG name being part of the LV name in lvconvert --splitmirrors -n.
Fix exclusive lvchange running from other node. (2.02.89) Fix exclusive lvchange running from other node. (2.02.89)
Add 'vgscan --cache' functionality for consistency with 'pvscan --cache'. Add 'vgscan --cache' functionality for consistency with 'pvscan --cache'.
Keep exclusive activation in pvmove if LV is already active. Keep exclusive activation in pvmove if LV is already active.

View File

@ -173,9 +173,19 @@ static int _read_params(struct lvconvert_params *lp, struct cmd_context *cmd,
} }
lp->lv_split_name = arg_value(cmd, name_ARG); lp->lv_split_name = arg_value(cmd, name_ARG);
if (lp->lv_split_name && if (lp->lv_split_name) {
!apply_lvname_restrictions(lp->lv_split_name)) if (strchr(lp->lv_split_name, '/')) {
return_0; if (!(lp->vg_name = extract_vgname(cmd, lp->lv_split_name)))
return_0;
/* Strip VG from lv_split_name */
if ((tmp_str = strrchr(lp->lv_split_name, '/')))
lp->lv_split_name = tmp_str + 1;
}
if (!apply_lvname_restrictions(lp->lv_split_name))
return_0;
}
lp->keep_mimages = 1; lp->keep_mimages = 1;
lp->mirrors = arg_uint_value(cmd, splitmirrors_ARG, 0); lp->mirrors = arg_uint_value(cmd, splitmirrors_ARG, 0);