summaryrefslogtreecommitdiff
path: root/lib
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 /lib
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.
Diffstat (limited to 'lib')
-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,