Fix integer overflow in calculating large IOPS on 32-bit platforms
authorBruce Cran <BCran@fusionio.com>
Sat, 9 Jul 2011 06:19:53 +0000 (08:19 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 9 Jul 2011 06:19:53 +0000 (08:19 +0200)
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
stat.c

diff --git a/stat.c b/stat.c
index d95be758334329b0e681347d419522e82ee1cd45..9f22c6e159c3c1a4c0a6a411d2d7da4a78b63aad 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -169,7 +169,7 @@ static void show_ddir_status(struct group_run_stats *rs, struct thread_stat *ts,
        io_p = num2str(ts->io_bytes[ddir], 6, 1, i2p);
        bw_p = num2str(bw, 6, 1, i2p);
 
-       iops = (1000 * ts->total_io_u[ddir]) / runt;
+       iops = (1000 * (uint64_t)ts->total_io_u[ddir]) / runt;
        iops_p = num2str(iops, 6, 1, 0);
 
        log_info("  %s: io=%sB, bw=%sB/s, iops=%s, runt=%6llumsec\n",