Also, a 2-member raid5 or 3-member raid6 are a raid1 and can be treated as such.
Chris Mason <chris.mason@xxxxxxxxxxxx> wrote:
>On Mon, Feb 04, 2013 at 02:42:24PM -0700, H. Peter Anvin wrote:
>> @@ -1389,6 +1392,14 @@ int btrfs_rm_device(struct btrfs_root *root,
>char
>> *device_path)
>> }
>> btrfs_dev_replace_unlock(&root->fs_info->dev_replace);
>>
>> + if ((all_avail & (BTRFS_BLOCK_GROUP_RAID5 |
>> + BTRFS_BLOCK_GROUP_RAID6) && num_devices <= 3)) {
>> + printk(KERN_ERR "btrfs: unable to go below three devices "
>> + "on raid5 or raid6\n");
>> + ret = -EINVAL;
>> + goto out;
>> + }
>> +
>> if ((all_avail & BTRFS_BLOCK_GROUP_RAID10) && num_devices <= 4) {
>> printk(KERN_ERR "btrfs: unable to go below four devices "
>> "on raid10\n");
>> @@ -1403,6 +1414,21 @@ int btrfs_rm_device(struct btrfs_root *root,
>char
>> *device_path)
>> goto out;
>> }
>>
>> + if ((all_avail & BTRFS_BLOCK_GROUP_RAID5) &&
>> + root->fs_info->fs_devices->rw_devices <= 2) {
>> + printk(KERN_ERR "btrfs: unable to go below two "
>> + "devices on raid5\n");
>> + ret = -EINVAL;
>> + goto out;
>> + }
>> + if ((all_avail & BTRFS_BLOCK_GROUP_RAID6) &&
>> + root->fs_info->fs_devices->rw_devices <= 3) {
>> + printk(KERN_ERR "btrfs: unable to go below three "
>> + "devices on raid6\n");
>> + ret = -EINVAL;
>> + goto out;
>> + }
>> +
>> if (strcmp(device_path, "missing") == 0) {
>> struct list_head *devices;
>> struct btrfs_device *tmp;
>>
>>
>> This seems inconsistent?
>
>Whoops, missed that one. Thanks!
>
>-chris
--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html