From c55fae03f7d5c0981e55241fc9003d762f7a5fd9 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 4 May 2017 08:43:27 -0600 Subject: [PATCH 1/1] options: force refill_buffers with pattern and any reads This will cause writes to always refill the buffer, which is needed to avoid having the reads garble the contents. Signed-off-by: Jens Axboe --- options.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/options.c b/options.c index 85574d7f..b489e902 100644 --- a/options.c +++ b/options.c @@ -1306,8 +1306,17 @@ static int str_buffer_pattern_cb(void *data, const char *input) assert(ret != 0); td->o.buffer_pattern_bytes = ret; - if (!td->o.compress_percentage) + + /* + * If this job is doing any reading or has compression set, + * ensure that we refill buffers for writes or we could be + * invalidating the pattern through reads. + */ + if (!td->o.compress_percentage && !td_read(td)) td->o.refill_buffers = 0; + else + td->o.refill_buffers = 1; + td->o.scramble_buffers = 0; td->o.zero_buffers = 0; -- 2.25.1