diff options
author | David Teigland <teigland@redhat.com> | 2016-01-14 09:12:57 -0600 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2016-01-14 09:12:57 -0600 |
commit | 6d09c8c2c45ea1dea243134b8badc841a87cc979 (patch) | |
tree | 4aaf7c06caefcf0a4c8859749326c4b4d995c16b | |
parent | 88400b599efa2a06fcc29c1c69ef450aa0c98524 (diff) | |
download | lvm2-6d09c8c2c45ea1dea243134b8badc841a87cc979.tar.gz |
Revert "process_each_pv: remove unnecessary workaround"
This reverts commit be1b1f3d8941543bcde2f42e65ed0f22fd07b122.
-rw-r--r-- | tools/toollib.c | 17 |
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); |