summaryrefslogtreecommitdiffstats
path: root/tools/lvcreate.c
diff options
context:
space:
mode:
authorJonathan Earl Brassow <jbrassow@redhat.com>2012-02-23 17:36:35 +0000
committerJonathan Earl Brassow <jbrassow@redhat.com>2012-02-23 17:36:35 +0000
commit870762d8e3a585ffe501b74e22abab66965fca55 (patch)
tree7d3e6e9ef0f559171d8c665cff8eded38a350a3a /tools/lvcreate.c
parentd4836062ff55800080de0279bac491291ab75621 (diff)
downloadlvm2-870762d8e3a585ffe501b74e22abab66965fca55.tar.gz
lvm2-870762d8e3a585ffe501b74e22abab66965fca55.tar.xz
lvm2-870762d8e3a585ffe501b74e22abab66965fca55.zip
Require number of stripes to be greater than parity devices in higher RAID.
Also, add some comments to code that I recently added that may be unclear otherwise.
Diffstat (limited to 'tools/lvcreate.c')
-rw-r--r--tools/lvcreate.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/lvcreate.c b/tools/lvcreate.c
index 7d3a5b0f..ebc1a0ec 100644
--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -485,9 +485,10 @@ static int _read_raid_params(struct lvcreate_params *lp,
*
* For RAID 4/5/6, these values must be set.
*/
- if (!segtype_is_mirrored(lp->segtype) && (lp->stripes < 2)) {
- log_error("Number of stripes to %s not specified",
- lp->segtype->name);
+ if (!segtype_is_mirrored(lp->segtype) &&
+ (lp->stripes <= lp->segtype->parity_devs)) {
+ log_error("Number of stripes must be at least %d for %s",
+ lp->segtype->parity_devs + 1, lp->segtype->name);
return 0;
}