From: krisd Date: Fri, 3 May 2019 13:33:50 +0000 (-0500) Subject: Fix assert error on blktrace replay containing trims X-Git-Tag: fio-3.17~37^2 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=252928cb017bcbf5e56157d15458880624af7e8a Fix assert error on blktrace replay containing trims --- diff --git a/blktrace.c b/blktrace.c index efe9ce24..8a246613 100644 --- a/blktrace.c +++ b/blktrace.c @@ -544,16 +544,19 @@ bool load_blktrace(struct thread_data *td, const char *filename, int need_swap) !ios[DDIR_SYNC]) { log_err("fio: found no ios in blktrace data\n"); return false; - } else if (ios[DDIR_READ] && !ios[DDIR_WRITE]) { - td->o.td_ddir = TD_DDIR_READ; - td->o.max_bs[DDIR_READ] = rw_bs[DDIR_READ]; - } else if (!ios[DDIR_READ] && ios[DDIR_WRITE]) { - td->o.td_ddir = TD_DDIR_WRITE; - td->o.max_bs[DDIR_WRITE] = rw_bs[DDIR_WRITE]; - } else { - td->o.td_ddir = TD_DDIR_RW; + } + + td->o.td_ddir = 0; + if (ios[DDIR_READ]) { + td->o.td_ddir |= TD_DDIR_READ; td->o.max_bs[DDIR_READ] = rw_bs[DDIR_READ]; + } + if (ios[DDIR_WRITE]) { + td->o.td_ddir |= TD_DDIR_WRITE; td->o.max_bs[DDIR_WRITE] = rw_bs[DDIR_WRITE]; + } + if (ios[DDIR_TRIM]) { + td->o.td_ddir |= TD_DDIR_TRIM; td->o.max_bs[DDIR_TRIM] = rw_bs[DDIR_TRIM]; }