X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Fsplice.c;h=03bc7ffcbc12d37e1360c05c5fefc9a132254f93;hp=868f6e0d3b6977ee3b9b0dea52ba3c52045c90b8;hb=0aa417a9515f9dc17523c1870f6409370e94ca19;hpb=8b850243258107412710cd38252f0cfb8802593d diff --git a/engines/splice.c b/engines/splice.c index 868f6e0d..03bc7ffc 100644 --- a/engines/splice.c +++ b/engines/splice.c @@ -130,6 +130,10 @@ restart: munmap(map, mmap_len); goto restart; } + if (errno == EBADF) { + ret = -EBADF; + break; + } td_verror(td, errno, "vmsplice"); break; } else if (!ret) { @@ -228,8 +232,12 @@ static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u) io_u->error = errno; } - if (io_u->error) + if (io_u->error) { td_verror(td, io_u->error, "xfer"); + if (io_u->error == EINVAL) + log_err("fio: looks like splice doesn't work on this" + " file system\n"); + } return FIO_Q_COMPLETED; } @@ -242,7 +250,6 @@ static void fio_spliceio_cleanup(struct thread_data *td) close(sd->pipe[0]); close(sd->pipe[1]); free(sd); - td->io_ops->data = NULL; } }