From 052f28746d1d90883f63e9fb1ef86efb03133fe7 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Wed, 28 Feb 2018 17:04:26 +0100 Subject: [PATCH] lvresize: check external origin with new size Instead of checking with existing size of external origin LV, use correctly the new 'wanted' size of this LV whether it fits the limitiation requirements for older thin-pool target. Otherwise code started to the the resize, updates metadata and just fails during 'resize' in case the LV was active. For inactive LV operation could have actually passed. --- WHATS_NEW | 1 + lib/metadata/lv_manip.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW b/WHATS_NEW index 6a0a0dcde..46f66b0f7 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.178 - ===================================== + Fix compatibility size test of extended external origin. Add external_origin visiting in for_each_sub_lv(). Ensure cluster commands drop their device cache before locking VG. Do not report LV as remotely active when it's locally exclusive in cluster. diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 12f444b7b..28f00abd9 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -5334,7 +5334,7 @@ static int _lvresize_check_type(const struct logical_volume *lv, /* Validate thin target supports bigger size of thin volume then external origin */ if (lv_is_thin_volume(lv) && first_seg(lv)->external_lv && - (lv->size > first_seg(lv)->external_lv->size) && + (lp->extents > first_seg(lv)->external_lv->le_count) && !thin_pool_feature_supported(first_seg(lv)->pool_lv, THIN_FEATURE_EXTERNAL_ORIGIN_EXTEND)) { log_error("Thin target does not support external origin smaller then thin volume."); return 0;