@@ -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);
@@ -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(