[pnfs] [PATCH 4/4] SQUASHME: pnfs-obj: fix up panlayout_get_stripesize
Benny Halevy
bhalevy at panasas.com
Thu Jan 14 07:07:11 EST 2010
Signed-off-by: Benny Halevy <bhalevy at panasas.com>
---
fs/nfs/objlayout/panfs_shim.c | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/fs/nfs/objlayout/panfs_shim.c b/fs/nfs/objlayout/panfs_shim.c
index ff97a4c..7f819e6 100644
--- a/fs/nfs/objlayout/panfs_shim.c
+++ b/fs/nfs/objlayout/panfs_shim.c
@@ -610,30 +610,27 @@ panlayout_get_stripesize(struct pnfs_layout_type *pnfslay)
dprintk("%s: Begin\n", __func__);
list_for_each_entry(lseg, &pnfslay->segs, fi_list) {
- int n = 0;
+ int n;
struct objlayout_segment *panlseg = LSEG_LD_DATA(lseg);
struct pnfs_osd_layout *lo =
(struct pnfs_osd_layout *)panlseg->pnfs_osd_layout;
struct pnfs_osd_data_map *map = &lo->olo_map;
+ n = map->odm_group_width;
+ if (n == 0)
+ n = map->odm_num_comps / (map->odm_mirror_cnt + 1);
+
switch (map->odm_raid_algorithm) {
case PNFS_OSD_RAID_0:
- n = lo->olo_num_comps;
break;
case PNFS_OSD_RAID_4:
case PNFS_OSD_RAID_5:
- n = map->odm_group_width;
- if (n == 0)
- n = lo->olo_num_comps;
n -= 1;
n *= 8; /* FIXME: until we have 2-D coalescing */
break;
case PNFS_OSD_RAID_PQ:
- n = map->odm_group_width;
- if (n == 0)
- n = lo->olo_num_comps;
n -= 2;
break;
--
1.6.5.1
More information about the pNFS
mailing list