X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Ffalloc.c;h=6382569b9a92c42c1ad5d76a75d9441808de6cc8;hp=cbb30cbf9ad215f17dd8704230a68638f5a7bbd1;hb=fc220349e45144360917db48010b503a9874930d;hpb=e615ceafbe3962a35b7a7e06a0c8f4e2c0652c65 diff --git a/engines/falloc.c b/engines/falloc.c index cbb30cbf..6382569b 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) { @@ -68,8 +65,10 @@ open_again: #endif #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) +#endif + +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,16 +85,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->ddir == DDIR_TRIM && !ret) - return io_u->xfer_buflen; - - if (io_u->file && ret == 0 && ddir_rw(io_u->ddir)) - io_u->file->file_pos = io_u->offset + ret; return FIO_Q_COMPLETED; }