munmap(map, mmap_len);
goto restart;
}
+ if (errno == EBADF) {
+ ret = -EBADF;
+ break;
+ }
td_verror(td, errno, "vmsplice");
break;
} else if (!ret) {
static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u)
{
struct spliceio_data *sd = td->io_ops->data;
- int ret;
+ int uninitialized_var(ret);
fio_ro_check(td, 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;
}
close(sd->pipe[0]);
close(sd->pipe[1]);
free(sd);
- td->io_ops->data = NULL;
}
}