summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2016-01-14 09:12:57 -0600
committerDavid Teigland <teigland@redhat.com>2016-01-14 09:12:57 -0600
commit6d09c8c2c45ea1dea243134b8badc841a87cc979 (patch)
tree4aaf7c06caefcf0a4c8859749326c4b4d995c16b
parent88400b599efa2a06fcc29c1c69ef450aa0c98524 (diff)
downloadlvm2-6d09c8c2c45ea1dea243134b8badc841a87cc979.tar.gz
Revert "process_each_pv: remove unnecessary workaround"
This reverts commit be1b1f3d8941543bcde2f42e65ed0f22fd07b122.
-rw-r--r--tools/toollib.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/tools/toollib.c b/tools/toollib.c
index 97cc1bf6e..728e61d4d 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -3033,6 +3033,7 @@ static int _process_pvs_in_vg(struct cmd_context *cmd,
const char *pv_name;
int selected;
int process_pv;
+ int dev_found;
int ret_max = ECMD_PROCESSED;
int ret = 0;
@@ -3086,7 +3087,21 @@ static int _process_pvs_in_vg(struct cmd_context *cmd,
else
log_very_verbose("Processing PV %s in VG %s.", pv_name, vg->name);
- _device_list_remove(all_devices, pv->dev);
+ dev_found = _device_list_remove(all_devices, pv->dev);
+
+ /*
+ * FIXME PVs with no mdas may turn up in an orphan VG when
+ * not using lvmetad as well as their correct VG. They
+ * will be missing from all_devices the second time
+ * around but must not be processed twice or trigger a message.
+ *
+ * Missing PVs will also need processing even though they are
+ * not present in all_devices.
+ */
+ if (!dev_found && !is_missing_pv(pv)) {
+ log_verbose("Skipping PV %s in VG %s: not in device list.", pv_name, vg->name);
+ continue;
+ }
if (!skip) {
ret = process_single_pv(cmd, vg, pv, handle);