Blame SOURCES/0068-vdo-report-supported-range-in-error-path.patch

f358f0
From cce56ebaa6b67d53b0430d5b52b957e194c9527d Mon Sep 17 00:00:00 2001
f358f0
From: Zdenek Kabelac <zkabelac@redhat.com>
f358f0
Date: Sat, 9 Jul 2022 21:28:40 +0200
f358f0
Subject: [PATCH 3/3] vdo: report supported range in error path
f358f0
f358f0
(cherry picked from commit 9f3eff002cc229d3c22dfd7db6da69dadc0bd460)
f358f0
---
f358f0
 device_mapper/vdo/vdo_target.c | 63 ++++++++++++++++++++++++----------
f358f0
 1 file changed, 45 insertions(+), 18 deletions(-)
f358f0
f358f0
diff --git a/device_mapper/vdo/vdo_target.c b/device_mapper/vdo/vdo_target.c
f358f0
index 3ebe0592e..ab3fff26a 100644
f358f0
--- a/device_mapper/vdo/vdo_target.c
f358f0
+++ b/device_mapper/vdo/vdo_target.c
f358f0
@@ -27,81 +27,108 @@ bool dm_vdo_validate_target_params(const struct dm_vdo_target_params *vtp,
f358f0
 	/* 512 or 4096 bytes only ATM */
f358f0
 	if ((vtp->minimum_io_size != (512 >> SECTOR_SHIFT)) &&
f358f0
 	    (vtp->minimum_io_size != (4096 >> SECTOR_SHIFT))) {
f358f0
-		log_error("VDO minimum io size %u is unsupported.",
f358f0
+		log_error("VDO minimum io size %u is unsupported [512, 4096].",
f358f0
 			  vtp->minimum_io_size);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->block_map_cache_size_mb < DM_VDO_BLOCK_MAP_CACHE_SIZE_MINIMUM_MB) ||
f358f0
 	    (vtp->block_map_cache_size_mb > DM_VDO_BLOCK_MAP_CACHE_SIZE_MAXIMUM_MB)) {
f358f0
-		log_error("VDO block map cache size %u out of range.",
f358f0
-			  vtp->block_map_cache_size_mb);
f358f0
+		log_error("VDO block map cache size %u MiB is out of range [%u..%u].",
f358f0
+			  vtp->block_map_cache_size_mb,
f358f0
+			  DM_VDO_BLOCK_MAP_CACHE_SIZE_MINIMUM_MB,
f358f0
+			  DM_VDO_BLOCK_MAP_CACHE_SIZE_MAXIMUM_MB);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->block_map_era_length < DM_VDO_BLOCK_MAP_ERA_LENGTH_MINIMUM) ||
f358f0
 	    (vtp->block_map_era_length > DM_VDO_BLOCK_MAP_ERA_LENGTH_MAXIMUM)) {
f358f0
-		log_error("VDO block map era length %u out of range.",
f358f0
-			  vtp->block_map_era_length);
f358f0
+		log_error("VDO block map era length %u is out of range [%u..%u].",
f358f0
+			  vtp->block_map_era_length,
f358f0
+			  DM_VDO_BLOCK_MAP_ERA_LENGTH_MINIMUM,
f358f0
+			  DM_VDO_BLOCK_MAP_ERA_LENGTH_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->index_memory_size_mb < DM_VDO_INDEX_MEMORY_SIZE_MINIMUM_MB) ||
f358f0
 	    (vtp->index_memory_size_mb > DM_VDO_INDEX_MEMORY_SIZE_MAXIMUM_MB)) {
f358f0
-		log_error("VDO index memory size %u out of range.",
f358f0
-			  vtp->index_memory_size_mb);
f358f0
+		log_error("VDO index memory size %u MiB is out of range [%u..%u].",
f358f0
+			  vtp->index_memory_size_mb,
f358f0
+			  DM_VDO_INDEX_MEMORY_SIZE_MINIMUM_MB,
f358f0
+			  DM_VDO_INDEX_MEMORY_SIZE_MAXIMUM_MB);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->slab_size_mb < DM_VDO_SLAB_SIZE_MINIMUM_MB) ||
f358f0
 	    (vtp->slab_size_mb > DM_VDO_SLAB_SIZE_MAXIMUM_MB)) {
f358f0
-		log_error("VDO slab size %u out of range.",
f358f0
-			  vtp->slab_size_mb);
f358f0
+		log_error("VDO slab size %u MiB is out of range [%u..%u].",
f358f0
+			  vtp->slab_size_mb,
f358f0
+			  DM_VDO_SLAB_SIZE_MINIMUM_MB,
f358f0
+			  DM_VDO_SLAB_SIZE_MAXIMUM_MB);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->max_discard < DM_VDO_MAX_DISCARD_MINIMUM) ||
f358f0
 	    (vtp->max_discard > DM_VDO_MAX_DISCARD_MAXIMUM)) {
f358f0
-		log_error("VDO max discard %u out of range.",
f358f0
-			  vtp->max_discard);
f358f0
+		log_error("VDO max discard %u is out of range [%u..%u].",
f358f0
+			  vtp->max_discard,
f358f0
+			  DM_VDO_MAX_DISCARD_MINIMUM,
f358f0
+			  DM_VDO_MAX_DISCARD_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if (vtp->ack_threads > DM_VDO_ACK_THREADS_MAXIMUM) {
f358f0
-		log_error("VDO ack threads %u out of range.", vtp->ack_threads);
f358f0
+		log_error("VDO ack threads %u is out of range [0..%u].",
f358f0
+			  vtp->ack_threads,
f358f0
+			  DM_VDO_ACK_THREADS_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->bio_threads < DM_VDO_BIO_THREADS_MINIMUM) ||
f358f0
 	    (vtp->bio_threads > DM_VDO_BIO_THREADS_MAXIMUM)) {
f358f0
-		log_error("VDO bio threads %u out of range.", vtp->bio_threads);
f358f0
+		log_error("VDO bio threads %u is out of range [%u..%u].",
f358f0
+			  vtp->bio_threads,
f358f0
+			  DM_VDO_BIO_THREADS_MINIMUM,
f358f0
+			  DM_VDO_BIO_THREADS_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->bio_rotation < DM_VDO_BIO_ROTATION_MINIMUM) ||
f358f0
 	    (vtp->bio_rotation > DM_VDO_BIO_ROTATION_MAXIMUM)) {
f358f0
-		log_error("VDO bio rotation %u out of range.", vtp->bio_rotation);
f358f0
+		log_error("VDO bio rotation %u is out of range [%u..%u].",
f358f0
+			  vtp->bio_rotation,
f358f0
+			  DM_VDO_BIO_ROTATION_MINIMUM,
f358f0
+			  DM_VDO_BIO_ROTATION_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if ((vtp->cpu_threads < DM_VDO_CPU_THREADS_MINIMUM) ||
f358f0
 	    (vtp->cpu_threads > DM_VDO_CPU_THREADS_MAXIMUM)) {
f358f0
-		log_error("VDO cpu threads %u out of range.", vtp->cpu_threads);
f358f0
+		log_error("VDO cpu threads %u is out of range [%u..%u].",
f358f0
+			  vtp->cpu_threads,
f358f0
+			  DM_VDO_CPU_THREADS_MINIMUM,
f358f0
+			  DM_VDO_CPU_THREADS_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if (vtp->hash_zone_threads > DM_VDO_HASH_ZONE_THREADS_MAXIMUM) {
f358f0
-		log_error("VDO hash zone threads %u out of range.", vtp->hash_zone_threads);
f358f0
+		log_error("VDO hash zone threads %u is out of range [0..%u].",
f358f0
+			  vtp->hash_zone_threads,
f358f0
+			  DM_VDO_HASH_ZONE_THREADS_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if (vtp->logical_threads > DM_VDO_LOGICAL_THREADS_MAXIMUM) {
f358f0
-		log_error("VDO logical threads %u out of range.", vtp->logical_threads);
f358f0
+		log_error("VDO logical threads %u is out of range [0..%u].",
f358f0
+			  vtp->logical_threads,
f358f0
+			  DM_VDO_LOGICAL_THREADS_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
 	if (vtp->physical_threads > DM_VDO_PHYSICAL_THREADS_MAXIMUM) {
f358f0
-		log_error("VDO physical threads %u out of range.", vtp->physical_threads);
f358f0
+		log_error("VDO physical threads %u is out of range [0..%u].",
f358f0
+			  vtp->physical_threads,
f358f0
+			  DM_VDO_PHYSICAL_THREADS_MAXIMUM);
f358f0
 		valid = false;
f358f0
 	}
f358f0
 
f358f0
-- 
f358f0
2.38.1
f358f0