Setting FOO_max to a value that is lower than FOO does not make
sense, and it produces odd results depending on the value of
FOO_max_length. Although the user should not set that configuration
in the first place it's better to reject it explicitly.

https://bugzilla.redhat.com/show_bug.cgi?id=1355665

Signed-off-by: Alberto Garcia <be...@igalia.com>
Reported-by: Gu Nini <n...@redhat.com>
---
 util/throttle.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/util/throttle.c b/util/throttle.c
index 654f95c..7a5c619 100644
--- a/util/throttle.c
+++ b/util/throttle.c
@@ -348,6 +348,12 @@ bool throttle_is_valid(ThrottleConfig *cfg, Error **errp)
                        " bps/iops values");
             return false;
         }
+
+        if (cfg->buckets[i].max && cfg->buckets[i].max < cfg->buckets[i].avg) {
+            error_setg(errp, "if bps_max/iops_max is set it cannot be lower"
+                       " than the bps/iops values");
+            return false;
+        }
     }
 
     return true;
-- 
2.8.1


Reply via email to