X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Ffalloc.c;h=a1f6a242b11bb60fe5742923105cfe394907145a;hp=4977d9e2bcd178b30c08e467a31102390322b903;hb=d3b07186b1d4c7c1d9adc1306407458ce41ad048;hpb=d79db1222039e906dd49ae290daa59701f4e2385 diff --git a/engines/falloc.c b/engines/falloc.c index 4977d9e2..a1f6a242 100644 --- a/engines/falloc.c +++ b/engines/falloc.c @@ -4,16 +4,12 @@ * IO engine that does regular fallocate to simulate data transfer * as fio ioengine. * DDIR_READ does fallocate(,mode = FALLOC_FL_KEEP_SIZE,) - * DDIR_WRITE does fallocate(,mode = 0) : fallocate with size extention + * DDIR_WRITE does fallocate(,mode = 0) : fallocate with size extension * DDIR_TRIM does fallocate(,mode = FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE) * */ #include -#include -#include -#include #include -#include #include #include "../fio.h" @@ -23,7 +19,7 @@ * generic_open_file is not appropriate because does not allow to perform * TRIM in to file */ -int open_file(struct thread_data *td, struct fio_file *f) +static int open_file(struct thread_data *td, struct fio_file *f) { int from_hash = 0; @@ -43,9 +39,10 @@ open_again: if (f->fd == -1) { char buf[FIO_VERROR_SIZE]; - int __e = errno; - snprintf(buf, sizeof(buf) - 1, "open(%s)", f->file_name); - td_verror(td, __e, buf); + int e = errno; + + snprintf(buf, sizeof(buf), "open(%s)", f->file_name); + td_verror(td, e, buf); } if (!from_hash && f->fd != -1) { @@ -69,7 +66,8 @@ open_again: #ifndef FALLOC_FL_PUNCH_HOLE #define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */ #endif -static int fio_fallocate_queue(struct thread_data *td, struct io_u *io_u) +static enum fio_q_status +fio_fallocate_queue(struct thread_data *td, struct io_u *io_u) { struct fio_file *f = io_u->file; int ret; @@ -86,14 +84,8 @@ static int fio_fallocate_queue(struct thread_data *td, struct io_u *io_u) ret = fallocate(f->fd, flags, io_u->offset, io_u->xfer_buflen); - if (ret) { + if (ret) io_u->error = errno; - if (io_u->error) - td_verror(td, io_u->error, "xfer"); - } - - if (io_u->file && ret == 0 && ddir_rw(io_u->ddir)) - io_u->file->file_pos = io_u->offset + ret; return FIO_Q_COMPLETED; }