summaryrefslogtreecommitdiff
path: root/fs/exofs
diff options
context:
space:
mode:
authorBoaz Harrosh <bharrosh@panasas.com>2010-11-21 20:03:24 +0200
committerBoaz Harrosh <bharrosh@panasas.com>2011-10-24 17:22:29 -0700
commit44231e686b2ba3b5702db867bb84e6d76b7cf2c7 (patch)
treeba99b8cf458a8c24264bfe3826d44610861a283a /fs/exofs
parentdd296619974c50c46c67e58f355a7e85ef3f0c01 (diff)
downloadlinux-44231e686b2ba3b5702db867bb84e6d76b7cf2c7.tar.gz
linux-44231e686b2ba3b5702db867bb84e6d76b7cf2c7.tar.xz
ore: Enable RAID5 mounts
Now that we support raid5 Enable it at mount. Raid6 will come next raid4 is not demanded for so it will probably not be enabled. (Until some one wants it) NOTE: That mkfs.exofs had support for raid5/6 since long time ago. (Making an empty raidX FS is just as easy as raid0 ;-} ) Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Diffstat (limited to 'fs/exofs')
-rw-r--r--fs/exofs/ore.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c
index 08ee454b2187..fcfa86ae6faf 100644
--- a/fs/exofs/ore.c
+++ b/fs/exofs/ore.c
@@ -49,9 +49,17 @@ int ore_verify_layout(unsigned total_comps, struct ore_layout *layout)
{
u64 stripe_length;
-/* FIXME: Only raid0 is supported for now. */
- if (layout->raid_algorithm != PNFS_OSD_RAID_0) {
- ORE_ERR("Only RAID_0 for now\n");
+ switch (layout->raid_algorithm) {
+ case PNFS_OSD_RAID_0:
+ layout->parity = 0;
+ break;
+ case PNFS_OSD_RAID_5:
+ layout->parity = 1;
+ break;
+ case PNFS_OSD_RAID_PQ:
+ case PNFS_OSD_RAID_4:
+ default:
+ ORE_ERR("Only RAID_0/5 for now\n");
return -EINVAL;
}
if (0 != (layout->stripe_unit & ~PAGE_MASK)) {