summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2016-10-11 11:59:43 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2016-10-11 13:36:29 +0200
commit1186cf2ad4bbfef07ead644dc689745d10709789 (patch)
tree47d8f8d6b258d9643f9bef864c4c3d4d694da0f9
parent20e74313cd8abaa691fb4f1015a84b34171aa08a (diff)
downloadlvm2-1186cf2ad4bbfef07ead644dc689745d10709789.tar.gz
lvconvert: fix error value
Seems some error path where not converted to 'new' ECMD return value. Fix them to always 'goto out'. Also drop unneeded 'ret = 0' when ret already is 0.
-rw-r--r--WHATS_NEW1
-rw-r--r--tools/lvconvert.c12
2 files changed, 5 insertions, 8 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index b0140beba..413868505 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.167 -
======================================
+ Fix a few unconverted return code values for some lvconvert error path.
Disable lvconvert of thin pool to raid while active.
Disable systemd service start rate limiting for lvm2-pvscan@.service.
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index daa2af4d1..a5ef23456 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -4446,13 +4446,11 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
if (lv_is_locked(lv)) {
log_error("Cannot convert locked LV %s.", display_lvname(lv));
- ret = 0;
goto out;
}
if (lv_is_pvmove(lv)) {
log_error("Cannot convert pvmove LV %s.", display_lvname(lv));
- ret = 0;
goto out;
}
@@ -4471,7 +4469,6 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
!lv_is_mirrored(lv) &&
!lv_is_raid(lv)) {
log_error("Cannot convert internal LV %s.", display_lvname(lv));
- ret = 0;
goto out;
}
}
@@ -4480,12 +4477,12 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
if (!*lp->type_str)
lp->segtype = seg->segtype;
else if (!(lp->segtype = get_segtype_from_string(cmd, lp->type_str)))
- return_0;
+ goto_out;
if (!strcmp(lp->type_str, SEG_TYPE_NAME_MIRROR)) {
if (!lp->mirrors_supplied && !seg_is_raid1(seg)) {
log_error("Conversions to --type mirror require -m/--mirrors");
- return 0;
+ goto out;
}
}
@@ -4494,7 +4491,7 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
!lp->segtype->ops->target_present(cmd, NULL, &lp->target_attr)) {
log_error("%s: Required device-mapper target(s) not "
"detected in your kernel.", lp->segtype->name);
- return 0;
+ goto out;
}
/* Process striping parameters */
@@ -4503,7 +4500,7 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
_striped_type_requested(lp->type_str) || lp->repair || lp->mirrorlog || lp->corelog) {
/* FIXME Handle +/- adjustments too? */
if (!get_stripe_params(cmd, lp->segtype, &lp->stripes, &lp->stripe_size, &lp->stripes_supplied, &lp->stripe_size_supplied))
- return_0;
+ goto_out;
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)! */
@@ -4569,7 +4566,6 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
* reach here, but this covers anything that was missed.
*/
log_error("Cannot convert LV %s.", display_lvname(lv));
- ret = 0;
out:
return ret ? ECMD_PROCESSED : ECMD_FAILED;