X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Ffio-engine-mmap.c;h=c85f6617309da24d4fca7bcc79dc3c443708f69c;hp=d203d6afc40db3d4ccca1cbcdbdaff4f94c22aab;hb=87dc1ab1b4df7b977f60e3d43533a896e2ee665b;hpb=dfd7bc2c24d3a4281982eaf4f83aa1aeb09424de diff --git a/engines/fio-engine-mmap.c b/engines/fio-engine-mmap.c index d203d6af..c85f6617 100644 --- a/engines/fio-engine-mmap.c +++ b/engines/fio-engine-mmap.c @@ -48,8 +48,10 @@ static int fio_mmapio_queue(struct thread_data *td, struct io_u *io_u) if (io_u->ddir == DDIR_READ) memcpy(io_u->buf, f->mmap + real_off, io_u->buflen); - else + 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) + return msync(f->mmap, f->file_size, MS_SYNC); /* * not really direct, but should drop the pages from the cache @@ -67,12 +69,6 @@ static int fio_mmapio_queue(struct thread_data *td, struct io_u *io_u) return io_u->error; } -static int fio_mmapio_sync(struct thread_data fio_unused *td, - struct fio_file *f) -{ - return msync(f->mmap, f->file_size, MS_SYNC); -} - static void fio_mmapio_cleanup(struct thread_data *td) { if (td->io_ops->data) { @@ -98,6 +94,5 @@ struct ioengine_ops ioengine = { .getevents = fio_mmapio_getevents, .event = fio_mmapio_event, .cleanup = fio_mmapio_cleanup, - .sync = fio_mmapio_sync, .flags = FIO_SYNCIO | FIO_MMAPIO, };