From 9fd37f951be60d2bf2570ada695b6f055bec7574 Mon Sep 17 00:00:00 2001 From: Goffredo Baroncelli Date: Tue, 31 Mar 2020 21:10:42 +0200 Subject: [PATCH] btrfs-progs: complete the implementation RAID1C34 definitions - complete the function btrfs_err_str adding some missing cases - sync the enum btrfs_err_code (in libbtrfsutil/btrfs.h) with the rest of the codes (user space and kernel space). - add missing fields to btrfs_raid_array[] for raid1c[34] Signed-off-by: Goffredo Baroncelli Signed-off-by: David Sterba --- ioctl.h | 4 ++++ libbtrfsutil/btrfs.h | 4 +++- volumes.c | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) 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,