summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2023-01-15 21:27:57 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2023-01-16 12:37:40 +0100
commitc20f01a0cbb24e8276734a00f26a510cf6daaf21 (patch)
treec8608acec01805bb448eeaf8ba268ef4c734a448
parent2451bc568feb9b3d0cb4d7c15e3c723f4d0c8cc9 (diff)
downloadlvm2-c20f01a0cbb24e8276734a00f26a510cf6daaf21.tar.gz
vdo: resize requires active vdopool volume
ATM kernel VDO target does not handle resize of inactive VDO LVs so prevent users corrupting such LVs and require active such LVs.
-rw-r--r--lib/metadata/lv_manip.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 305be8578..cb7f26069 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -5954,6 +5954,16 @@ static int _lv_resize_check_used(struct logical_volume *lv)
return 0;
}
+ if (lv_is_vdo(lv) && !lv_is_active(lv)) {
+ log_error("Cannot resize inactive VDO logical volume %s.", display_lvname(lv));
+ return 0;
+ }
+
+ if (lv_is_vdo_pool(lv) && !lv_is_active(lv_lock_holder(lv))) {
+ log_error("Cannot resize inactive VDO POOL volume %s.", display_lvname(lv));
+ return 0;
+ }
+
if (lv_is_external_origin(lv)) {
/*
* Since external-origin can be activated read-only,