diff options
author | Jonathan Brassow <jbrassow@redhat.com> | 2012-08-08 12:32:27 -0500 |
---|---|---|
committer | Jonathan Brassow <jbrassow@redhat.com> | 2012-08-08 12:32:27 -0500 |
commit | de3b1c4506ff502f00a360a83800f35a31e1b42e (patch) | |
tree | 9da327be5e881793bb246a4385174a74bf13a39b /tools | |
parent | b61be643701d05bb12e0b2e32085f312a1f121bf (diff) | |
download | lvm2-de3b1c4506ff502f00a360a83800f35a31e1b42e.tar.gz lvm2-de3b1c4506ff502f00a360a83800f35a31e1b42e.tar.xz lvm2-de3b1c4506ff502f00a360a83800f35a31e1b42e.zip |
RAID: Improve RAID argument handling.
Disallow '-m' for RAID types that have no mirror component and disallow
'-i' argument for RAID types that have no stripe component.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/lvcreate.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/lvcreate.c b/tools/lvcreate.c index 48977d74..da2b925e 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -539,6 +539,27 @@ static int _read_raid_params(struct lvcreate_params *lp, } /* + * RAID types without a mirror component do not take '-m' arg + */ + if (!segtype_is_mirrored(lp->segtype) && + arg_count(cmd, mirrors_ARG)) { + log_error("Mirror argument cannot be used with segment type, %s", + lp->segtype->name); + return 0; + } + + /* + * RAID1 does not take a stripe arg + */ + if ((lp->stripes > 1) && + segtype_is_mirrored(lp->segtype) && + strcmp(lp->segtype->name, "raid10")) { + log_error("Stripe argument cannot be used with segment type, %s", + lp->segtype->name); + return 0; + } + + /* * _read_mirror_params is called before _read_raid_params * and already sets: * lp->nosync |