Also, a 2-member raid5 or 3-member raid6 are a raid1 and can be treated as such.
Chris Mason <chris.ma...@fusionio.com> 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html