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

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to