summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2016-12-17 21:58:35 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2016-12-18 19:17:59 +0100
commit36f609e513262547aa4d92c2b55d98b1471ba2e2 (patch)
treec14bdefcb89147eb7e204f5c8ae9888600b45bab
parent7db46c4a39fd945f295a5bd4191bd48828072d24 (diff)
downloadlvm2-36f609e513262547aa4d92c2b55d98b1471ba2e2.tar.gz
validation: check external property is matching
Detect if number of external_count is matching referencing devices for external_origin LV.
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/metadata/merge.c12
2 files changed, 13 insertions, 0 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 6d368908a..50023082c 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.169 -
=====================================
+ Extend metadata validation of external origin LV use count.
Fix dm table when the last user of active external origin is removed.
Improve reported lvs status for active external origin volume.
Fix table load for splitted RAID LV and require explicit activation.
diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c
index 6d52bc452..947513b83 100644
--- a/lib/metadata/merge.c
+++ b/lib/metadata/merge.c
@@ -398,6 +398,18 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg)
inc_error_count;
}
}
+
+ if (lv_is_external_origin(lv)) {
+ seg_found = 0;
+ dm_list_iterate_items(sl, &lv->segs_using_this_lv)
+ if (sl->seg->external_lv == lv)
+ seg_found++;
+ if (seg_found != lv->external_count) {
+ log_error("LV %s: external origin count does not match.",
+ lv->name);
+ inc_error_count;
+ }
+ }
}
dm_list_iterate_items(seg, &lv->segments) {