if (f->last_pos >= f->real_file_size) {
if (!td_random(td) || get_next_rand_offset(td, f, ddir, &b))
return 1;
- } else {
- b = f->last_pos / td->o.min_bs[ddir];
- }
+ } else
+ b = (f->last_pos - f->file_offset) / td->o.min_bs[ddir];
}
io_u->offset = (b * td->o.min_bs[ddir]) + f->file_offset;
if (ret && !icd->error)
icd->error = ret;
}
+ if (io_u->unmap)
+ io_u->unmap(td, io_u);
} else {
icd->error = io_u->error;
io_u_log_error(td, io_u);