diff options
Diffstat (limited to 'device_mapper/vdo/vdo_target.c')
-rw-r--r-- | device_mapper/vdo/vdo_target.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/device_mapper/vdo/vdo_target.c b/device_mapper/vdo/vdo_target.c index c488023b5..976d71af2 100644 --- a/device_mapper/vdo/vdo_target.c +++ b/device_mapper/vdo/vdo_target.c @@ -23,6 +23,13 @@ bool dm_vdo_validate_target_params(const struct dm_vdo_target_params *vtp, { bool valid = true; + if ((vtp->minimum_io_size != 512) && + (vtp->minimum_io_size != 4096)) { + log_error("VDO minimum io size %u is unsupported.", + vtp->minimum_io_size); + valid = false; + } + if ((vtp->block_map_cache_size_mb < DM_VDO_BLOCK_MAP_CACHE_SIZE_MINIMUM_MB) || (vtp->block_map_cache_size_mb > DM_VDO_BLOCK_MAP_CACHE_SIZE_MAXIMUM_MB)) { log_error("VDO block map cache size %u out of range.", @@ -37,12 +44,6 @@ bool dm_vdo_validate_target_params(const struct dm_vdo_target_params *vtp, valid = false; } - if (vtp->read_cache_size_mb > DM_VDO_READ_CACHE_SIZE_MAXIMUM_MB) { - log_error("VDO read cache size %u out of range.", - vtp->read_cache_size_mb); - valid = false; - } - if ((vtp->slab_size_mb < DM_VDO_SLAB_SIZE_MINIMUM_MB) || (vtp->slab_size_mb > DM_VDO_SLAB_SIZE_MAXIMUM_MB)) { log_error("VDO slab size %u out of range.", @@ -50,6 +51,13 @@ bool dm_vdo_validate_target_params(const struct dm_vdo_target_params *vtp, valid = false; } + if ((vtp->max_discard < DM_VDO_MAX_DISCARD_MINIMUM) || + (vtp->max_discard > DM_VDO_MAX_DISCARD_MAXIMUM)) { + log_error("VDO max discard %u out of range.", + vtp->max_discard); + valid = false; + } + if (vtp->ack_threads > DM_VDO_ACK_THREADS_MAXIMUM) { log_error("VDO ack threads %u out of range.", vtp->ack_threads); valid = false; |