summaryrefslogtreecommitdiff
path: root/lib/metadata/lv_manip.c
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/metadata/lv_manip.c
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/metadata/lv_manip.c')
-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,