Fix signed int/long truncation on 32-bit architectures
With using our internal random generator, we generate
unsigned ints. But by mistake this was assigned to
a signed long, that doesn't work so well on 32-bit machines.
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
diff --git a/io_u.c b/io_u.c
index 787f382..d35b844 100644
--- a/io_u.c
+++ b/io_u.c
@@ -346,7 +346,7 @@
const int ddir = io_u->ddir;
unsigned int uninitialized_var(buflen);
unsigned int minbs, maxbs;
- long r, rand_max;
+ unsigned long r, rand_max;
assert(ddir_rw(ddir));
@@ -423,7 +423,7 @@
static inline enum fio_ddir get_rand_ddir(struct thread_data *td)
{
unsigned int v;
- long r;
+ unsigned long r;
if (td->o.use_os_rand) {
r = os_random_long(&td->rwmix_state);
@@ -849,7 +849,7 @@
do {
int opened = 0;
- long r;
+ unsigned long r;
if (td->o.use_os_rand) {
r = os_random_long(&td->next_file_state);