server: add vectored fio_send_cmd_ext_pdu()
[fio.git] / io_u.c
diff --git a/io_u.c b/io_u.c
index 06ca711b57e4ec9a18bf39d75acf2c98ce13740e..20794c38a88c5d9bea08d50f8865fe398576a235 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -1070,6 +1070,7 @@ again:
                assert(io_u->flags & IO_U_F_FREE);
                io_u->flags &= ~(IO_U_F_FREE | IO_U_F_FREE_DEF);
                io_u->flags &= ~(IO_U_F_TRIMMED | IO_U_F_BARRIER);
+               io_u->flags &= ~IO_U_F_VER_LIST;
 
                io_u->error = 0;
                flist_del(&io_u->list);
@@ -1226,13 +1227,15 @@ struct io_u *get_io_u(struct thread_data *td)
                f->last_pos = io_u->offset + io_u->buflen;
 
                if (io_u->ddir == DDIR_WRITE) {
-                       if (td->o.verify != VERIFY_NONE)
-                               populate_verify_io_u(td, io_u);
-                       else if (td->o.refill_buffers) {
+                       if (td->o.refill_buffers) {
                                io_u_fill_buffer(td, io_u,
                                        io_u->xfer_buflen, io_u->xfer_buflen);
                        } else if (td->o.scramble_buffers)
                                do_scramble = 1;
+                       if (td->o.verify != VERIFY_NONE) {
+                               populate_verify_io_u(td, io_u);
+                               do_scramble = 0;
+                       }
                } else if (io_u->ddir == DDIR_READ) {
                        /*
                         * Reset the buf_filled parameters so next time if the
@@ -1542,8 +1545,11 @@ void io_u_fill_buffer(struct thread_data *td, struct io_u *io_u,
                unsigned int perc = td->o.compress_percentage;
 
                if (perc) {
+                       unsigned int seg = min_write;
+
+                       seg = min(min_write, td->o.compress_chunk);
                        fill_random_buf_percentage(&td->buf_state, io_u->buf,
-                                               perc, min_write, max_bs);
+                                               perc, seg, max_bs);
                } else
                        fill_random_buf(&td->buf_state, io_u->buf, max_bs);
        } else