summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2016-08-08 10:37:24 -0500
committerDavid Teigland <teigland@redhat.com>2016-08-08 10:37:24 -0500
commitfc93085c7a7716671c3567d367dd2c75544a058b (patch)
tree81d381bc9d07128b184f1d5c0aaa0836ab010601
parent6f90c954b72a5bad8cdeddebea4b3dc5981322c7 (diff)
downloadlvm2-fc93085c7a7716671c3567d367dd2c75544a058b.tar.gz
lvconvert: separate type raid to mirror
By the current division of unique operations, converting type raid to type mirror is distinct from converting type raid to raid.
-rw-r--r--man/lvconvert.8.in6
-rw-r--r--tools/lvconvert.c15
2 files changed, 20 insertions, 1 deletions
diff --git a/man/lvconvert.8.in b/man/lvconvert.8.in
index 5ddea3d6c..641e850a6 100644
--- a/man/lvconvert.8.in
+++ b/man/lvconvert.8.in
@@ -452,6 +452,12 @@ Convert RaidLV to use a different raid level.
\[bu]
Required options depend on the raid level.
+.B lvconvert \-\-type mirror
+VG/RaidLV
+.br
+\[bu]
+Convert RaidLV to type mirror.
+
.B lvconvert \-\-type striped
VG/RaidLV
.br
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index e7c34f7c6..8dc9f6ddb 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -3922,6 +3922,16 @@ static int _convert_raid_raid(struct cmd_context *cmd, struct logical_volume *lv
}
/*
+ * Convert a raid* LV to a mirror LV.
+ * lvconvert --type mirror LV
+ */
+static int _convert_raid_mirror(struct cmd_context *cmd, struct logical_volume *lv,
+ struct lvconvert_params *lp)
+{
+ return _lvconvert_raid(lv, lp);
+}
+
+/*
* Convert a raid* LV to a striped LV.
* lvconvert --type striped LV
*/
@@ -4282,9 +4292,12 @@ static int _convert_raid(struct cmd_context *cmd, struct logical_volume *lv,
if (!strcmp(lp->type_str, SEG_TYPE_NAME_CACHE_POOL) || arg_is_set(cmd, cachepool_ARG))
return _convert_raid_cache_pool(cmd, lv, lp);
- if (segtype_is_raid(lp->segtype) || segtype_is_mirror(lp->segtype))
+ if (segtype_is_raid(lp->segtype))
return _convert_raid_raid(cmd, lv, lp);
+ if (segtype_is_mirror(lp->segtype))
+ return _convert_raid_mirror(cmd, lv, lp);
+
if (!strcmp(lp->type_str, SEG_TYPE_NAME_STRIPED))
return _convert_raid_striped(cmd, lv, lp);