#include "lib/axmap.h"
#include "err.h"
#include "lib/pow2.h"
+#include "minmax.h"
struct io_completion_data {
int nr; /* input */
}
}
- if (td->o.do_verify && td->o.verify != VERIFY_NONE)
+ if (td->o.verify != VERIFY_NONE)
buflen = (buflen + td->o.verify_interval - 1) &
~(td->o.verify_interval - 1);
if (td->flags & TD_F_REFILL_BUFFERS) {
io_u_fill_buffer(td, io_u,
td->o.min_bs[DDIR_WRITE],
- io_u->xfer_buflen);
+ io_u->buflen);
} else if ((td->flags & TD_F_SCRAMBLE_BUFFERS) &&
!(td->flags & TD_F_COMPRESS))
do_scramble = 1;
unsigned int perc = td->o.compress_percentage;
struct frand_state *rs;
unsigned int left = max_bs;
+ unsigned int this_write;
do {
rs = get_buf_state(td);
min_write = min(min_write, left);
if (perc) {
- unsigned int seg = min_write;
+ this_write = min_not_zero(min_write,
+ td->o.compress_chunk);
- seg = min(min_write, td->o.compress_chunk);
- if (!seg)
- seg = min_write;
-
- fill_random_buf_percentage(rs, buf, perc, seg,
- min_write, o->buffer_pattern,
- o->buffer_pattern_bytes);
- } else
+ fill_random_buf_percentage(rs, buf, perc,
+ this_write, this_write,
+ o->buffer_pattern,
+ o->buffer_pattern_bytes);
+ } else {
fill_random_buf(rs, buf, min_write);
+ this_write = min_write;
+ }
- buf += min_write;
- left -= min_write;
+ buf += this_write;
+ left -= this_write;
save_buf_state(td, rs);
} while (left);
} else if (o->buffer_pattern_bytes)