diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index ffb5fcde54a9..e02c579d4ceb 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -7541,6 +7541,12 @@ static struct r5conf *setup_conf(struct mddev *mddev) mdname(mddev), mddev->new_layout); return ERR_PTR(-EIO); } + if ((mddev->new_level == 4 || mddev->new_level == 5) + && mddev->raid_disks < 2) { + pr_warn("md/raid:%s: not enough configured devices (%d, minimum 2)\n", + mdname(mddev), mddev->raid_disks); + return ERR_PTR(-EINVAL); + } if (mddev->new_level == 6 && mddev->raid_disks < 4) { pr_warn("md/raid:%s: not enough configured devices (%d, minimum 4)\n", mdname(mddev), mddev->raid_disks);