allow for ratemin to be used without setting rate
[fio.git] / init.c
diff --git a/init.c b/init.c
index 8e1f295073c9eef96a8f09eaa9c9fd5a6a224f7b..6d8dcffde9100f0001e5dba7a0912033d98ab166 100644 (file)
--- a/init.c
+++ b/init.c
@@ -636,12 +636,12 @@ static int fixup_options(struct thread_data *td)
                log_err("fio: rate and rate_iops are mutually exclusive\n");
                ret = 1;
        }
-       if ((o->rate[DDIR_READ] < o->ratemin[DDIR_READ]) ||
-           (o->rate[DDIR_WRITE] < o->ratemin[DDIR_WRITE]) ||
-           (o->rate[DDIR_TRIM] < o->ratemin[DDIR_TRIM]) ||
-           (o->rate_iops[DDIR_READ] < o->rate_iops_min[DDIR_READ]) ||
-           (o->rate_iops[DDIR_WRITE] < o->rate_iops_min[DDIR_WRITE]) ||
-           (o->rate_iops[DDIR_TRIM] < o->rate_iops_min[DDIR_TRIM])) {
+       if ((o->rate[DDIR_READ] && (o->rate[DDIR_READ] < o->ratemin[DDIR_READ])) ||
+           (o->rate[DDIR_WRITE] && (o->rate[DDIR_WRITE] < o->ratemin[DDIR_WRITE])) ||
+           (o->rate[DDIR_TRIM] && (o->rate[DDIR_TRIM] < o->ratemin[DDIR_TRIM])) ||
+           (o->rate_iops[DDIR_READ] && (o->rate_iops[DDIR_READ] < o->rate_iops_min[DDIR_READ])) ||
+           (o->rate_iops[DDIR_WRITE] && (o->rate_iops[DDIR_WRITE] < o->rate_iops_min[DDIR_WRITE])) ||
+           (o->rate_iops[DDIR_TRIM] && (o->rate_iops[DDIR_TRIM] < o->rate_iops_min[DDIR_TRIM]))) {
                log_err("fio: minimum rate exceeds rate\n");
                ret = 1;
        }