- min_io = blkid_topology_get_minimum_io_size(tp);
- opt_io = blkid_topology_get_optimal_io_size(tp);
- blocksize = EXT2_BLOCK_SIZE(param);
- if ((min_io == 0) && (psector_size > blocksize))
- min_io = psector_size;
- if ((opt_io == 0) && min_io)
- opt_io = min_io;
- if ((opt_io == 0) && (psector_size > blocksize))
- opt_io = psector_size;
-
- /* setting stripe/stride to blocksize is pointless */
- if (min_io > blocksize)
- param->s_raid_stride = min_io / blocksize;
- if (opt_io > blocksize)
- param->s_raid_stripe_width = opt_io / blocksize;
-
- rc = blkid_topology_get_alignment_offset(tp);
+ dev_param->min_io = blkid_topology_get_minimum_io_size(tp);
+ if (dev_param->min_io > OPTIMIZED_STRIDE) {
+ fprintf(stdout,
+ "detected raid stride %lu too large, use optimum %lu\n",
+ dev_param->min_io, OPTIMIZED_STRIDE);
+ dev_param->min_io = OPTIMIZED_STRIDE;
+ }
+ dev_param->opt_io = blkid_topology_get_optimal_io_size(tp);
+ if (dev_param->opt_io > OPTIMIZED_STRIPE_WIDTH) {
+ fprintf(stdout,
+ "detected raid stripe width %lu too large, use optimum %lu\n",
+ dev_param->opt_io, OPTIMIZED_STRIPE_WIDTH);
+ dev_param->opt_io = OPTIMIZED_STRIPE_WIDTH;
+ }
+ if ((dev_param->min_io == 0) && (psector_size > blocksize))
+ dev_param->min_io = psector_size;
+ if ((dev_param->opt_io == 0) && dev_param->min_io > 0)
+ dev_param->opt_io = dev_param->min_io;
+ if ((dev_param->opt_io == 0) && (psector_size > blocksize))
+ dev_param->opt_io = psector_size;
+
+ dev_param->alignment_offset = blkid_topology_get_alignment_offset(tp);
+#ifdef HAVE_BLKID_TOPOLOGY_GET_DAX
+ dev_param->dax = blkid_topology_get_dax(tp);
+#endif
+ rc = 0;