diff mbox

nfs-utils: calculate stripe device size during process phase

Message ID 20110214193233.GA3555@merit.edu (mailing list archive)
State RFC, archived
Headers show

Commit Message

Jim Rees Feb. 14, 2011, 7:32 p.m. UTC
None
diff mbox

Patch

diff --git a/utils/blkmapd/device-process.c b/utils/blkmapd/device-process.c
index b709b48..9a78457 100644
--- a/utils/blkmapd/device-process.c
+++ b/utils/blkmapd/device-process.c
@@ -318,7 +318,8 @@  decode_blk_volume(uint32_t **pp, uint32_t *end, struct bl_volume *vols, int voln
 			}
 		}
 		/* Truncate size to a stripe unit boundary */
-		vol->bv_size = vol->bv_vols[0]->bv_size & ~(chunksize - 1);
+		vol->bv_size = vol->bv_vols[0]->bv_size * vol->bv_vol_n;
+		vol->bv_size &= ~(chunksize - 1);
 		break;
 	case BLOCK_VOLUME_CONCAT:
 		BLK_READBUF(p, end, 4);
diff --git a/utils/blkmapd/dm-device.c b/utils/blkmapd/dm-device.c
index 2e87db8..c4fe4e9 100644
--- a/utils/blkmapd/dm-device.c
+++ b/utils/blkmapd/dm-device.c
@@ -418,7 +418,7 @@  uint64_t dm_device_create(struct bl_volume *vols, int num_vols)
 			stripe_size = stripe_unit * node->bv_vol_n;
 			nstripes = node->bv_size * node->bv_vol_n / stripe_size;
 			/* Make sure total size is a multiple of stripe size */
-			size = node->bv_size * node->bv_vol_n;
+			size = node->bv_size;
 			if (size % stripe_size != 0) {
 				/* XXX Should this be an error? */
 				BL_LOG_WARNING(