]> sourceware.org Git - lvm2.git/commitdiff
metadata: import device name hint from metadata
authorDavid Teigland <teigland@redhat.com>
Wed, 4 Sep 2019 19:13:14 +0000 (14:13 -0500)
committerDavid Teigland <teigland@redhat.com>
Mon, 30 Sep 2019 16:38:10 +0000 (11:38 -0500)
Start by using it in a comment for a missing PV.

lib/format_text/import_vsn1.c
lib/metadata/metadata.c
lib/metadata/pv.h

index f29abce720d39103862c240949bba57b0c94fe2a..2785ab343316632d150651c7ef99bd84dac2338c 100644 (file)
@@ -184,6 +184,7 @@ static int _read_pv(struct cmd_context *cmd,
        struct physical_volume *pv;
        struct pv_list *pvl;
        const struct dm_config_value *cv;
+       const char *device_hint;
        uint64_t size, ba_start;
 
        if (!(pvl = dm_pool_zalloc(mem, sizeof(*pvl))) ||
@@ -228,6 +229,11 @@ static int _read_pv(struct cmd_context *cmd,
                return 0;
        }
 
+       if (dm_config_get_str(pvn, "device", &device_hint)) {
+               if (!(pv->device_hint = dm_pool_strdup(mem, device_hint)))
+                       log_error("Failed to allocate memory for device hint in read_pv.");
+       }
+
        if (!_read_uint64(pvn, "pe_start", &pv->pe_start)) {
                log_error("Couldn't read extent start value (pe_start) "
                          "for physical volume.");
index b43496793c3a46a2ff46c8166257470771954248..cf5c563ec9d73c3d06f867645b202c9f644c5c7b 100644 (file)
@@ -4971,7 +4971,10 @@ struct volume_group *vg_read(struct cmd_context *cmd, const char *vg_name, const
                if (!pvl->pv->dev) {
                        /* The obvious and common case of a missing device. */
 
-                       log_warn("WARNING: VG %s is missing PV %s.", vg_name, uuidstr);
+                       if (pvl->pv->device_hint)
+                               log_warn("WARNING: VG %s is missing PV %s (last written to %s).", vg_name, uuidstr, pvl->pv->device_hint);
+                       else
+                               log_warn("WARNING: VG %s is missing PV %s.", vg_name, uuidstr);
                        missing_pv_dev++;
 
                } else if (pvl->pv->status & MISSING_PV) {
index 3430c2e1f828f67c0ca5592aace0bad3f14e1081..efa13e04b1fbf7dce7fd96ec2138fea412792836 100644 (file)
@@ -26,6 +26,7 @@ struct physical_volume {
        struct id id;
        struct id old_id;               /* Set during pvchange -u. */
        struct device *dev;
+       const char *device_hint;        /* primary name last time metadata was written */
        const struct format_type *fmt;
        struct format_instance *fid;
 
This page took 0.040085 seconds and 5 git commands to generate.