[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