summaryrefslogtreecommitdiffstats
path: root/tools/lvresize.c
diff options
context:
space:
mode:
authorMike Snitzer <snitzer@redhat.com>2010-03-20 03:44:04 +0000
committerMike Snitzer <snitzer@redhat.com>2010-03-20 03:44:04 +0000
commitfd817ff34a0ff9913e8797737f8fbd72ac9d2ead (patch)
tree17eccda34ccdf276f19143c4f19d5d4f5819182b /tools/lvresize.c
parent94ff21b4f10d9237875a626df48ddadb2bd807ce (diff)
downloadlvm2-fd817ff34a0ff9913e8797737f8fbd72ac9d2ead.tar.gz
lvm2-fd817ff34a0ff9913e8797737f8fbd72ac9d2ead.tar.xz
lvm2-fd817ff34a0ff9913e8797737f8fbd72ac9d2ead.zip
Don't allow resizing of internal logical volumes.
Prevent lvresize from being able to resize internal LVs: mirror legs (*_mimage_*), mirror log (*_mlog), snapshot placeholder LVs (snapshot*) and others. Resizing these would leads to unexpected metadata and sometimes crashes (in case of growing snapshot*).
Diffstat (limited to 'tools/lvresize.c')
-rw-r--r--tools/lvresize.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/lvresize.c b/tools/lvresize.c
index 849fd2ef..1a96f82a 100644
--- a/tools/lvresize.c
+++ b/tools/lvresize.c
@@ -323,6 +323,11 @@ static int _lvresize(struct cmd_context *cmd, struct volume_group *vg,
lv = lvl->lv;
+ if (!lv_is_visible(lv)) {
+ log_error("Can't resize internal logical volume %s", lv->name);
+ return ECMD_FAILED;
+ }
+
if (lv->status & LOCKED) {
log_error("Can't resize locked LV %s", lv->name);
return ECMD_FAILED;