diff --git a/WHATS_NEW b/WHATS_NEW index b0b1be5ac..82d3581c9 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.27 - ================================ + Cope with find_seg_by_le() failure in check_lv_segments(). Call dev_iter_destroy() if _process_all_devs() is interrupted by sigint. Add vg_mda_count and pv_mda_count columns to reports. Fix dumpconfig to use log_print instead of stdout directly. diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c index 1cdc94065..d117fa27d 100644 --- a/lib/metadata/merge.c +++ b/lib/metadata/merge.c @@ -146,9 +146,9 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg) if (complete_vg && seg_lv(seg, s) && (seg_lv(seg, s)->status & MIRROR_IMAGE) && - (find_seg_by_le(seg_lv(seg, s), - seg_le(seg, s))->mirror_seg - != seg)) { + (!(seg2 = find_seg_by_le(seg_lv(seg, s), + seg_le(seg, s))) || + seg2->mirror_seg != seg)) { log_error("LV %s: segment %u mirror " "image %u missing mirror ptr", lv->name, seg_count, s);