X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=ioengines.c;h=7f4e104e927aeee75fa04d51c699d41460c49ae0;hp=7df0abac0bf9a427fbb8273ddf6f151797c8fead;hb=6625155407de739e1e857419b7b4fb62f6c6bb2e;hpb=0d29de831183dfd049c97a03008d425ce21e2fa4 diff --git a/ioengines.c b/ioengines.c index 7df0abac..7f4e104e 100644 --- a/ioengines.c +++ b/ioengines.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "fio.h" @@ -311,6 +312,8 @@ int td_io_init(struct thread_data *td) log_err("fio: io engine init failed. Perhaps try" " reducing io depth?\n"); } + if (!td->error) + td->error = ret; } return ret; @@ -386,7 +389,7 @@ int td_io_open_file(struct thread_data *td, struct fio_file *f) else flags = POSIX_FADV_SEQUENTIAL; - if (fadvise(f->fd, f->file_offset, f->io_size, flags) < 0) { + if (posix_fadvise(f->fd, f->file_offset, f->io_size, flags) < 0) { td_verror(td, errno, "fadvise"); goto err; } @@ -402,6 +405,7 @@ int td_io_open_file(struct thread_data *td, struct fio_file *f) if (ret) { td_verror(td, ret, "fio_set_odirect"); + log_err("fio: the file system does not seem to support direct IO\n"); goto err; } } @@ -489,7 +493,7 @@ int do_io_u_trim(struct thread_data *td, struct io_u *io_u) struct fio_file *f = io_u->file; int ret; - ret = os_trim(f->fd, io_u->offset + f->file_offset, io_u->xfer_buflen); + ret = os_trim(f->fd, io_u->offset, io_u->xfer_buflen); if (!ret) return io_u->xfer_buflen;;