summaryrefslogtreecommitdiff
path: root/lib/cache/lvmetad.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cache/lvmetad.c')
-rw-r--r--lib/cache/lvmetad.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
index 5de571dba..cd361af58 100644
--- a/lib/cache/lvmetad.c
+++ b/lib/cache/lvmetad.c
@@ -299,20 +299,6 @@ static struct lvmcache_info *_pv_populate_lvmcache(struct cmd_context *cmd,
if (!dev && fallback)
dev = dev_cache_get_by_devt(fallback, cmd->filter);
- if (alt_devices)
- alt_device = alt_devices->v;
-
- while (alt_device) {
- dev_alternate = dev_cache_get_by_devt(alt_device->v.i, cmd->filter);
- if (dev_alternate)
- log_warn("Found duplicate of PV %s on device %s.",
- pvid_txt, dev_name(dev_alternate));
- else
- log_warn("Duplicate of PV %s exists on unknown device %"PRId64 ":%" PRId64,
- pvid_txt, MAJOR(alt_device->v.i), MINOR(alt_device->v.i));
- alt_device = alt_device->next;
- }
-
if (!dev) {
log_warn("WARNING: Device for PV %s not found or rejected by a filter.", pvid_txt);
return NULL;
@@ -375,6 +361,24 @@ static struct lvmcache_info *_pv_populate_lvmcache(struct cmd_context *cmd,
++i;
} while (da);
+ if (alt_devices)
+ alt_device = alt_devices->v;
+
+ while (alt_device) {
+ dev_alternate = dev_cache_get_by_devt(alt_device->v.i, cmd->filter);
+ if (dev_alternate)
+ log_warn("Found duplicate PV %s dev %s on other device %s",
+ pvid_txt, dev_name(dev), dev_name(dev_alternate));
+ else
+ log_warn("Duplicate of PV %s dev %s exists on unknown device %"PRId64 ":%" PRId64,
+ pvid_txt, dev_name(dev), MAJOR(alt_device->v.i), MINOR(alt_device->v.i));
+
+ lvmcache_add(fmt->labeller, (const char *)&pvid, dev_alternate,
+ vgname, (const char *)&vgid, 0);
+
+ alt_device = alt_device->next;
+ }
+
return info;
}