lvm2/0002-lvconvert-fix-ret-values-fro-integrity-remove.patch

106 lines
3.0 KiB
Diff

From b982d9ac56a709f1ffcdfb052029556bd8d56635 Mon Sep 17 00:00:00 2001
From: Zdenek Kabelac <zkabelac@redhat.com>
Date: Wed, 9 Aug 2023 13:02:13 +0200
Subject: [PATCH 02/24] lvconvert: fix ret values fro integrity remove
Fix return value from _lvconvert_integrity_remove()
as it is expected to match _add() and be 0/1.
Also add some missing log_error() messages.
---
tools/lvconvert.c | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index 49047abb0..c25c87db4 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -6410,24 +6410,26 @@ int lvconvert_to_cache_with_cachevol_cmd(struct cmd_context *cmd, int argc, char
static int _lvconvert_integrity_remove(struct cmd_context *cmd, struct logical_volume *lv)
{
- int ret = 0;
-
- if (!lv_is_integrity(lv) && !lv_is_raid(lv)) {
+ if (!lv_is_integrity(lv)) {
log_error("LV does not have integrity.");
- return ECMD_FAILED;
+ return 0;
+ }
+
+ if (!lv_is_raid(lv)) {
+ log_error("Cannot remove integrity from non raid type LV %s.",
+ display_lvname(lv));
+ return 0;
}
/* ensure it's not active elsewhere. */
if (!lockd_lv(cmd, lv, "ex", 0))
- return_ECMD_FAILED;
+ return_0;
- if (lv_is_raid(lv))
- ret = lv_remove_integrity_from_raid(lv);
- if (!ret)
- return_ECMD_FAILED;
+ if (!lv_remove_integrity_from_raid(lv))
+ return_0;
log_print_unless_silent("Logical volume %s has removed integrity.", display_lvname(lv));
- return ECMD_PROCESSED;
+ return 1;
}
static int _lvconvert_integrity_add(struct cmd_context *cmd, struct logical_volume *lv,
@@ -6435,7 +6437,6 @@ static int _lvconvert_integrity_add(struct cmd_context *cmd, struct logical_volu
{
struct volume_group *vg = lv->vg;
struct dm_list *use_pvh;
- int ret = 0;
/* ensure it's not active elsewhere. */
if (!lockd_lv(cmd, lv, "ex", 0))
@@ -6453,9 +6454,13 @@ static int _lvconvert_integrity_add(struct cmd_context *cmd, struct logical_volu
return 0;
}
- if (lv_is_raid(lv))
- ret = lv_add_integrity_to_raid(lv, set, use_pvh, NULL);
- if (!ret)
+ if (!lv_is_raid(lv)) {
+ log_error("Cannot add integrity to non raid type LV %s.",
+ display_lvname(lv));
+ return 0;
+ }
+
+ if (!lv_add_integrity_to_raid(lv, set, use_pvh, NULL))
return_0;
log_print_unless_silent("Logical volume %s has added integrity.", display_lvname(lv));
@@ -6466,10 +6471,8 @@ static int _lvconvert_integrity_single(struct cmd_context *cmd,
struct logical_volume *lv,
struct processing_handle *handle)
{
- struct integrity_settings settings;
- int ret = 0;
-
- memset(&settings, 0, sizeof(settings));
+ struct integrity_settings settings = { 0 };
+ int ret;
if (!integrity_mode_set(arg_str_value(cmd, raidintegritymode_ARG, NULL), &settings))
return_ECMD_FAILED;
@@ -6483,7 +6486,8 @@ static int _lvconvert_integrity_single(struct cmd_context *cmd,
ret = _lvconvert_integrity_remove(cmd, lv);
if (!ret)
- return ECMD_FAILED;
+ return_ECMD_FAILED;
+
return ECMD_PROCESSED;
}
--
2.35.3