[lvm-devel] [PATCH] Allow vgname/lvname name specification in lvconvert --splitmirrors
Peter Rajnoha
prajnoha at redhat.com
Thu Mar 22 15:01:34 UTC 2012
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 blabla/splitted_one vg/mirrored_one
Please use a single volume group name ("vg" or "blabla")
Run `lvconvert --help' for more information.
...should make rhbz #796602 happy (lvcreate/lvrename already accepts
vgname/lvname for a new volume name).
Peter
---
tools/lvconvert.c | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index 654e115..2071f08 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -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);
- if (lp->lv_split_name &&
- !apply_lvname_restrictions(lp->lv_split_name))
- return_0;
+ if (lp->lv_split_name) {
+ if (strchr(lp->lv_split_name, '/')) {
+ 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->mirrors = arg_uint_value(cmd, splitmirrors_ARG, 0);
More information about the lvm-devel
mailing list