summaryrefslogtreecommitdiff
path: root/lib/cache
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2019-10-08 14:44:24 -0500
committerDavid Teigland <teigland@redhat.com>2019-10-11 12:57:39 -0500
commitbd21736e8b082319e1a9a29e75badd906ee277f6 (patch)
treee18faeeb7a598362dc1d794d3158507230158b41 /lib/cache
parentd6ffc990523468e46ae03a462ef1ec73067f9934 (diff)
downloadlvm2-bd21736e8b082319e1a9a29e75badd906ee277f6.tar.gz
vgck: let updatemetadata repair mismatched metadata
Let vgck --updatemetadata repair cases where different mdas hold indepedently valid but unmatching copies of the metadata, i.e. different text metadata checksums or text metadata sizes.
Diffstat (limited to 'lib/cache')
-rw-r--r--lib/cache/lvmcache.c1
-rw-r--r--lib/cache/lvmcache.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c
index 316624fe5..f6e792459 100644
--- a/lib/cache/lvmcache.c
+++ b/lib/cache/lvmcache.c
@@ -1649,6 +1649,7 @@ int lvmcache_update_vgname_and_id(struct lvmcache_info *info, struct lvmcache_vg
vgsummary->mda_checksum, vgsummary->mda_size,
vginfo->mda_checksum, vginfo->mda_size);
vginfo->scan_summary_mismatch = true;
+ vgsummary->mismatch = 1;
return 0;
}
diff --git a/lib/cache/lvmcache.h b/lib/cache/lvmcache.h
index 1401974be..d614e5469 100644
--- a/lib/cache/lvmcache.h
+++ b/lib/cache/lvmcache.h
@@ -58,6 +58,7 @@ struct lvmcache_vgsummary {
int mda_num; /* 1 = summary from mda1, 2 = summary from mda2 */
unsigned mda_ignored:1;
unsigned zero_offset:1;
+ unsigned mismatch:1; /* lvmcache sets if this summary differs from previous values */
struct dm_list pvsummaries;
};