diff --git a/ioctl.h b/ioctl.h index 4e7efd94..ade6dcb9 100644 --- a/ioctl.h +++ b/ioctl.h @@ -798,6 +798,10 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code) switch (err_code) { case BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET: return "unable to go below two devices on raid1"; + case BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET: + return "unable to go below three devices on raid1c3"; + case BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET: + return "unable to go below four devices on raid1c4"; case BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET: return "unable to go below four devices on raid10"; case BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET: diff --git a/libbtrfsutil/btrfs.h b/libbtrfsutil/btrfs.h index 4bc12754..60d51ff6 100644 --- a/libbtrfsutil/btrfs.h +++ b/libbtrfsutil/btrfs.h @@ -830,7 +830,9 @@ enum btrfs_err_code { BTRFS_ERROR_DEV_TGT_REPLACE, BTRFS_ERROR_DEV_MISSING_NOT_FOUND, BTRFS_ERROR_DEV_ONLY_WRITABLE, - BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS + BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS, + BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET, + BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET, }; #define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \ diff --git a/volumes.c b/volumes.c index b46bf598..7f84fbba 100644 --- a/volumes.c +++ b/volumes.c @@ -65,6 +65,9 @@ const struct btrfs_raid_attr btrfs_raid_array[BTRFS_NR_RAID_TYPES] = { .tolerated_failures = 2, .devs_increment = 3, .ncopies = 3, + .raid_name = "raid1c3", + .bg_flag = BTRFS_BLOCK_GROUP_RAID1C3, + .mindev_error = BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET, }, [BTRFS_RAID_RAID1C4] = { .sub_stripes = 1, @@ -74,6 +77,9 @@ const struct btrfs_raid_attr btrfs_raid_array[BTRFS_NR_RAID_TYPES] = { .tolerated_failures = 3, .devs_increment = 4, .ncopies = 4, + .raid_name = "raid1c4", + .bg_flag = BTRFS_BLOCK_GROUP_RAID1C4, + .mindev_error = BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET, }, [BTRFS_RAID_DUP] = { .sub_stripes = 1,