use 'lib/pattern' to parse patterns and paste formats into buffers
[fio.git] / eta.c
diff --git a/eta.c b/eta.c
index f608c4e56aed8142ee24bb6e4cdf8ce9c6e57484..3e8eb0bbc0d1981fc0aa9dac768fddbb1a02b466 100644 (file)
--- a/eta.c
+++ b/eta.c
@@ -315,14 +315,19 @@ static void calc_iops(int unified_rw_rep, unsigned long mtime,
        int i;
 
        for (i = 0; i < DDIR_RWDIR_CNT; i++) {
-               unsigned long long diff;
+               unsigned long long diff, this_iops;
 
                diff = io_iops[i] - prev_io_iops[i];
+               if (mtime)
+                       this_iops = (diff * 1000) / mtime;
+               else
+                       this_iops = 0;
+
                if (unified_rw_rep) {
                        iops[i] = 0;
-                       iops[0] += (diff * 1000) / mtime;
+                       iops[0] += this_iops;
                } else
-                       iops[i] = (diff * 1000) / mtime;
+                       iops[i] = this_iops;
 
                prev_io_iops[i] = io_iops[i];
        }
@@ -585,7 +590,7 @@ struct jobs_eta *get_jobs_eta(int force, size_t *size)
        if (!thread_number)
                return NULL;
 
-       *size = sizeof(*je) + THREAD_RUNSTR_SZ;
+       *size = sizeof(*je) + THREAD_RUNSTR_SZ + 1;
        je = malloc(*size);
        if (!je)
                return NULL;