projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add 'null' verify option
[fio.git]
/
engines
/
splice.c
diff --git
a/engines/splice.c
b/engines/splice.c
index f55e5c0703273357781f4af7e548ba2be629d94a..59bf7e4f8ed19660d694a4ebf3de0718d27fe583 100644
(file)
--- a/
engines/splice.c
+++ b/
engines/splice.c
@@
-1,5
+1,8
@@
/*
/*
- * splice io engine
+ * splice engine
+ *
+ * IO engine that transfers data by doing splices to/from pipes and
+ * the files.
*
*/
#include <stdio.h>
*
*/
#include <stdio.h>
@@
-116,7
+119,7
@@
static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u)
ret = fsync(io_u->file->fd);
if (ret != (int) io_u->xfer_buflen) {
ret = fsync(io_u->file->fd);
if (ret != (int) io_u->xfer_buflen) {
- if (ret > 0) {
+ if (ret >
=
0) {
io_u->resid = io_u->xfer_buflen - ret;
io_u->error = 0;
return FIO_Q_COMPLETED;
io_u->resid = io_u->xfer_buflen - ret;
io_u->error = 0;
return FIO_Q_COMPLETED;
@@
-125,7
+128,7
@@
static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u)
}
if (io_u->error)
}
if (io_u->error)
- td_verror(td, io_u->error);
+ td_verror(td, io_u->error
, "xfer"
);
return FIO_Q_COMPLETED;
}
return FIO_Q_COMPLETED;
}
@@
-147,7
+150,7
@@
static int fio_spliceio_init(struct thread_data *td)
struct spliceio_data *sd = malloc(sizeof(*sd));
if (pipe(sd->pipe) < 0) {
struct spliceio_data *sd = malloc(sizeof(*sd));
if (pipe(sd->pipe) < 0) {
- td_verror(td, errno);
+ td_verror(td, errno
, "pipe"
);
free(sd);
return 1;
}
free(sd);
return 1;
}
@@
-162,6
+165,8
@@
static struct ioengine_ops ioengine = {
.init = fio_spliceio_init,
.queue = fio_spliceio_queue,
.cleanup = fio_spliceio_cleanup,
.init = fio_spliceio_init,
.queue = fio_spliceio_queue,
.cleanup = fio_spliceio_cleanup,
+ .open_file = generic_open_file,
+ .close_file = generic_close_file,
.flags = FIO_SYNCIO,
};
.flags = FIO_SYNCIO,
};