summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2014-11-18 09:22:37 -0600
committerDavid Teigland <teigland@redhat.com>2014-11-18 09:25:56 -0600
commitaaa6205d5ad4beb8a54d56f9285cafb5dbd5c7b4 (patch)
tree1def1db6f5c8ca8e46a726f698253b0e9d7fef81
parentcf37c04347c6b6209420764da43127a96445af0e (diff)
downloadlvm2-aaa6205d5ad4beb8a54d56f9285cafb5dbd5c7b4.tar.gz
toollib: improve ignore_vg case in _process_pvs_in_vgs
ignore_vg now returns 0 for the FAILED_CLUSTERED case, so all the ignore_vg 1 cases will return vg's with an empty vg->pvs, so we do not need to iterate through vg->pvs to remove the entries from the devices list. Clean up whitespace problems in that area from the previous commit.
-rw-r--r--tools/toollib.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/tools/toollib.c b/tools/toollib.c
index 8eb434d97..30dc980ba 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -2200,25 +2200,26 @@ static int _process_pvs_in_vgs(struct cmd_context *cmd, uint32_t flags,
vg = vg_read(cmd, vg_name, vg_uuid, flags | READ_WARN_INCONSISTENT);
if (ignore_vg(vg, vg_name, flags & READ_ALLOW_INCONSISTENT, &skip)) {
stack;
- ret = ECMD_FAILED;
- skip = 1;
-
- /* Only continue if no vg was returned. */
- if (!vg)
- continue;
+ ret_max = ECMD_FAILED;
+ continue;
}
+ /*
+ * Don't continue when skip is set, because we need to remove
+ * vg->pvs entries from devices list.
+ */
+
ret = _process_pvs_in_vg(cmd, vg, all_devices, arg_pvnames, arg_tags,
process_all, skip, handle, process_single_pv);
if (ret != ECMD_PROCESSED)
stack;
- if (ret > ret_max)
+ if (ret > ret_max)
ret_max = ret;
- if (skip)
- release_vg(vg);
- else
- unlock_and_release_vg(cmd, vg, vg->name);
+ if (skip)
+ release_vg(vg);
+ else
+ unlock_and_release_vg(cmd, vg, vg->name);
/* Quit early when possible. */
if (!process_all && dm_list_empty(arg_tags) && dm_list_empty(arg_pvnames))