diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2016-12-17 21:58:35 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2016-12-18 19:17:59 +0100 |
commit | 36f609e513262547aa4d92c2b55d98b1471ba2e2 (patch) | |
tree | c14bdefcb89147eb7e204f5c8ae9888600b45bab | |
parent | 7db46c4a39fd945f295a5bd4191bd48828072d24 (diff) | |
download | lvm2-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_NEW | 1 | ||||
-rw-r--r-- | lib/metadata/merge.c | 12 |
2 files changed, 13 insertions, 0 deletions
@@ -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) { |