[PATCH] Warn on writable strings
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index 52caa4e94627222957f5c46f6a123ac9cc319278..8c059df627294f3607e2e1bae00a6f2c571451fb 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -45,7 +45,7 @@ int groupid = 0;
 int thread_number = 0;
 int shm_id = 0;
 int temp_stall_ts;
-char *fio_inst_prefix = _INST_PREFIX;
+const char *fio_inst_prefix = _INST_PREFIX;
 
 static volatile int startup_sem;
 
@@ -436,7 +436,7 @@ static void do_io(struct thread_data *td)
                gettimeofday(&e, NULL);
                usec = utime_since(&s, &e);
 
-               rate_throttle(td, usec, icd.bytes_done[td->ddir]);
+               rate_throttle(td, usec, icd.bytes_done[td->ddir], td->ddir);
 
                if (check_min_rate(td, &e)) {
                        if (rate_quit)
@@ -482,9 +482,9 @@ static void cleanup_io_u(struct thread_data *td)
 /*
  * "randomly" fill the buffer contents
  */
-static void fill_rand_buf(struct io_u *io_u, unsigned int max_bs)
+static void fill_rand_buf(struct io_u *io_u, int max_bs)
 {
-       unsigned int *ptr = io_u->buf;
+       int *ptr = io_u->buf;
 
        while ((void *) ptr - io_u->buf < max_bs) {
                *ptr = rand() * 0x9e370001;
@@ -495,6 +495,7 @@ static void fill_rand_buf(struct io_u *io_u, unsigned int max_bs)
 static int init_io_u(struct thread_data *td)
 {
        struct io_u *io_u;
+       unsigned int max_bs;
        int i, max_units;
        char *p;
 
@@ -506,7 +507,8 @@ static int init_io_u(struct thread_data *td)
        else
                max_units = td->iodepth;
 
-       td->orig_buffer_size = td->max_bs * max_units + MASK;
+       max_bs = max(td->max_bs[DDIR_READ], td->max_bs[DDIR_WRITE]);
+       td->orig_buffer_size = max_bs * max_units + MASK;
 
        if (allocate_io_mem(td))
                return 1;
@@ -517,9 +519,9 @@ static int init_io_u(struct thread_data *td)
                memset(io_u, 0, sizeof(*io_u));
                INIT_LIST_HEAD(&io_u->list);
 
-               io_u->buf = p + td->max_bs * i;
+               io_u->buf = p + max_bs * i;
                if (td_write(td) || td_rw(td))
-                       fill_rand_buf(io_u, td->max_bs);
+                       fill_rand_buf(io_u, max_bs);
 
                io_u->index = i;
                list_add(&io_u->list, &td->io_u_freelist);