X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Ffio-engine-splice.c;h=192fbd00bffdf14184a249e481dbfc95ab4e7f07;hp=cb39b7225946fc55b618b8b65cf0bef8d2500de0;hb=c06aa240c904becbafb8457ed3b828cf0d38a180;hpb=7a16dd027f83d7ff8ff0e72bb6bb12fae046fcbf diff --git a/engines/fio-engine-splice.c b/engines/fio-engine-splice.c index cb39b722..192fbd00 100644 --- a/engines/fio-engine-splice.c +++ b/engines/fio-engine-splice.c @@ -16,12 +16,6 @@ struct spliceio_data { int pipe[2]; }; -static int fio_spliceio_sync(struct thread_data fio_unused *td, - struct fio_file *f) -{ - return fsync(f->fd); -} - static int fio_spliceio_getevents(struct thread_data *td, int fio_unused min, int max, struct timespec fio_unused *t) { @@ -135,14 +129,16 @@ static int fio_splice_write(struct thread_data *td, struct io_u *io_u) static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u) { struct spliceio_data *sd = td->io_ops->data; - int ret; + unsigned int ret; if (io_u->ddir == DDIR_READ) ret = fio_splice_read(td, io_u); - else + else if (io_u->ddir == DDIR_WRITE) ret = fio_splice_write(td, io_u); + else + ret = fsync(io_u->file->fd); - if ((unsigned int) ret != io_u->buflen) { + if (ret != io_u->buflen) { if (ret > 0) { io_u->resid = io_u->buflen - ret; io_u->error = ENODATA; @@ -191,6 +187,5 @@ struct ioengine_ops ioengine = { .getevents = fio_spliceio_getevents, .event = fio_spliceio_event, .cleanup = fio_spliceio_cleanup, - .sync = fio_spliceio_sync, .flags = FIO_SYNCIO, };