- memcpy(io_u->buf, td->mmap + real_off, io_u->buflen);
- else
- memcpy(td->mmap + real_off, io_u->buf, io_u->buflen);
+ memcpy(io_u->buf, f->mmap + real_off, io_u->buflen);
+ else if (io_u->ddir == DDIR_WRITE)
+ memcpy(f->mmap + real_off, io_u->buf, io_u->buflen);
+ else if (io_u->ddir == DDIR_SYNC) {
+ if (msync(f->mmap, f->file_size, MS_SYNC))
+ io_u->error = errno;
+ }