summaryrefslogtreecommitdiff
path: root/mkfs.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-04-16 11:14:21 -0400
committerDavid Woodhouse <dwmw2@hera.kernel.org>2008-04-16 11:14:21 -0400
commit1f81c1b6fcc17d6609ba0327aca7cedd967c6731 (patch)
tree95c58de0a2363c20016a3d99423a2b63cf2e25ef /mkfs.c
parent951fd7371c5719f0491e0a8a524cf5be43729412 (diff)
Add raid10 support
Diffstat (limited to 'mkfs.c')
-rw-r--r--mkfs.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mkfs.c b/mkfs.c
index 741edc67..2b743093 100644
--- a/mkfs.c
+++ b/mkfs.c
@@ -203,7 +203,10 @@ static int create_raid_groups(struct btrfs_trans_handle *trans,
if (num_devices == 1)
allowed = BTRFS_BLOCK_GROUP_DUP;
- else
+ else if (num_devices >= 4) {
+ allowed = BTRFS_BLOCK_GROUP_RAID0 | BTRFS_BLOCK_GROUP_RAID1 |
+ BTRFS_BLOCK_GROUP_RAID10;
+ } else
allowed = BTRFS_BLOCK_GROUP_RAID0 | BTRFS_BLOCK_GROUP_RAID1;
if (allowed & metadata_profile) {
@@ -246,6 +249,8 @@ static u64 parse_profile(char *s)
return BTRFS_BLOCK_GROUP_RAID0;
} else if (strcmp(s, "raid1") == 0) {
return BTRFS_BLOCK_GROUP_RAID1 | BTRFS_BLOCK_GROUP_DUP;
+ } else if (strcmp(s, "raid10") == 0) {
+ return BTRFS_BLOCK_GROUP_RAID10 | BTRFS_BLOCK_GROUP_DUP;
} else if (strcmp(s, "single") == 0) {
return 0;
} else {