From ea0e5e6ea8f357f257b686ed02730567929497bb Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Thu, 28 May 2009 00:29:14 +0000 Subject: [PATCH] Rename internal vorigin LV to match visible LV. --- WHATS_NEW | 1 + lib/metadata/lv_manip.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index 9a3446ef5..d43ad3bc8 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.48 - =============================== + Rename internal vorigin LV to match visible LV. Suppress 'removed' messages displayed when internal LVs are removed. Fix lvchange -a and -p for sparse LVs. Fix lvcreate --virtualsize to activate the new device immediately. diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 3f770996e..53e92e0f9 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -1700,19 +1700,24 @@ static int _for_each_sub_lv(struct cmd_context *cmd, struct logical_volume *lv, void *data), void *data) { + struct logical_volume *org; struct lv_segment *seg; uint32_t s; + if (lv_is_cow(lv) && lv_is_virtual_origin(org = origin_from_cow(lv))) + if (!func(cmd, org, data)) + return_0; + dm_list_iterate_items(seg, &lv->segments) { if (seg->log_lv && !func(cmd, seg->log_lv, data)) - return 0; + return_0; for (s = 0; s < seg->area_count; s++) { if (seg_type(seg, s) != AREA_LV) continue; if (!func(cmd, seg_lv(seg, s), data)) - return 0; + return_0; if (!_for_each_sub_lv(cmd, seg_lv(seg, s), func, data)) - return 0; + return_0; } }