From 824ec243220038b2533a584dc7689b5787d3d43d Mon Sep 17 00:00:00 2001 From: Jonathan Earl Brassow Date: Thu, 1 Dec 2011 00:13:16 +0000 Subject: [PATCH] Don't allow size change of RAID LV that is tracking changes for a split image Don't allow size change of RAID sub-LVs independently --- WHATS_NEW | 6 ++++-- tools/lvresize.c | 13 +++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index 9c1f36413..ed652f7dc 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,7 +1,9 @@ Version 2.02.89 - ================================== - Don't allow name change of RAID LV while tracking a split image. - Do not allow users to change the name of RAID sub-LVs + Don't allow size change of RAID LV that is tracking changes for a split image + Don't allow size change of RAID sub-LVs independently + Don't allow name change of RAID LV that is tracking changes for a split image + Do not allow users to change the name of RAID sub-LVs independently Do not allow users to change permissions on RAID sub-LVs Support the ability to replace specific devices in a RAID array via lvconvert. Add activation/use_linear_target enabled by default. diff --git a/tools/lvresize.c b/tools/lvresize.c index 6107843a0..20ea366a4 100644 --- a/tools/lvresize.c +++ b/tools/lvresize.c @@ -361,6 +361,19 @@ static int _lvresize(struct cmd_context *cmd, struct volume_group *vg, return ECMD_FAILED; } + if (lvl->lv->status & (RAID_IMAGE | RAID_META)) { + log_error("Cannot resize a RAID %s directly", + (lvl->lv->status & RAID_IMAGE) ? "image" : + "metadata area"); + return ECMD_FAILED; + } + + if (lv_is_raid_with_tracking(lvl->lv)) { + log_error("Cannot resize %s while it is tracking a split image", + lvl->lv->name); + return ECMD_FAILED; + } + if (arg_count(cmd, stripes_ARG)) { if (vg->fid->fmt->features & FMT_SEGMENTS) lp->stripes = arg_uint_value(cmd, stripes_ARG, 1); -- 2.43.5