diff --git a/device_mapper/vdo/vdo_target.c b/device_mapper/vdo/vdo_target.c index a8a753e39..cdd3dbe6d 100644 --- a/device_mapper/vdo/vdo_target.c +++ b/device_mapper/vdo/vdo_target.c @@ -28,7 +28,7 @@ bool dm_vdo_validate_target_params(const struct dm_vdo_target_params *vtp, if ((vtp->minimum_io_size != (512 >> SECTOR_SHIFT)) && (vtp->minimum_io_size != (4096 >> SECTOR_SHIFT))) { log_error("VDO minimum io size %u is unsupported [512, 4096].", - vtp->minimum_io_size); + (vtp->minimum_io_size << SECTOR_SHIFT)); valid = false; } diff --git a/tools/toollib.c b/tools/toollib.c index dcb6c8f4f..f854d17c5 100644 --- a/tools/toollib.c +++ b/tools/toollib.c @@ -1372,6 +1372,10 @@ int get_vdo_settings(struct cmd_context *cmd, u |= VDO_CHANGE_ONLINE; } + /* store size in sector units */ + if (vtp->minimum_io_size >= 512) + vtp->minimum_io_size >>= SECTOR_SHIFT; + // validation of updated VDO option if (!dm_vdo_validate_target_params(vtp, 0 /* vdo_size */)) goto_out;