# Re: \[PATCH v2\] md/raid5: reject raid4/5 arrays with too few disks

- From: yu kuai \<yukuai@fygo.io\>
- Date: 2026-09-07 06:35:48 
- List: linux-raid
- Page: https://ratatoskr.run/linux-raid/2026/09/17522886
- Thread: https://ratatoskr.run/sashiko-reviews/2026/09/17522886/t.md

```text
Hi,

在 2026/9/5 19:00, sashiko-bot@kernel.org 写道:
>> diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
>> index b91545ce090de..4d8bb0cf26055 100644
>> --- a/drivers/md/raid5.c
>> +++ b/drivers/md/raid5.c
>> @@ -7657,9 +7657,12 @@ static struct r5conf *setup_conf(struct mddev *mddev)
>>   			mdname(mddev), mddev->new_layout);
>>   		return ERR_PTR(-EIO);
>>   	}
>> -	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);
>> +	if ((mddev->new_level == 4 && mddev->raid_disks < 2) ||
>> +	    (mddev->new_level == 5 && mddev->raid_disks < 3) ||
> [Severity: High]
> Does this unintentionally break 2-disk RAID5 arrays?
>
> The md driver supports and intentionally creates 2-disk RAID5 arrays during a
> RAID1-to-RAID5 reshape. For example, in drivers/md/raid5.c
> raid5_takeover_raid1() creates a 2-disk RAID5:
>
>      mddev->new_level = 5;
>      mddev->new_layout = ALGORITHM_LEFT_SYMMETRIC;
>      mddev->new_chunk_sectors = chunksect;
>
>      ret = setup_conf(mddev);
>
> By unconditionally rejecting mddev->new_level == 5 && mddev->raid_disks < 3
> here, doesn't this cause valid reshape operations and assembly of legitimate
> 2-disk RAID5 arrays to fail with -EINVAL?

This make sense, 2 disks raid1 reshape to raid5 should not be broken.

-- 
Thanks,
Kuai
```
