Merge branch 'cygwin-build-error' of https://github.com/vincentkfu/fio
[fio.git] / ioengines.c
index aa4ccd2755c96f843d69333448795b0b16061723..9e3fcc9f681a46fa336ef247a6aa6497dade09af 100644 (file)
@@ -125,8 +125,7 @@ static struct ioengine_ops *__load_ioengine(const char *name)
 {
        char engine[64];
 
-       engine[sizeof(engine) - 1] = '\0';
-       strncpy(engine, name, sizeof(engine) - 1);
+       snprintf(engine, sizeof(engine), "%s", name);
 
        /*
         * linux libaio has alias names, so convert to what we want
@@ -377,14 +376,16 @@ enum fio_q_status td_io_queue(struct thread_data *td, struct io_u *io_u)
        }
 
        if (ret == FIO_Q_COMPLETED) {
-               if (ddir_rw(io_u->ddir) || ddir_sync(io_u->ddir)) {
+               if (ddir_rw(io_u->ddir) ||
+                   (ddir_sync(io_u->ddir) && td->runstate != TD_FSYNCING)) {
                        io_u_mark_depth(td, 1);
                        td->ts.total_io_u[io_u->ddir]++;
                }
        } else if (ret == FIO_Q_QUEUED) {
                td->io_u_queued++;
 
-               if (ddir_rw(io_u->ddir) || ddir_sync(io_u->ddir))
+               if (ddir_rw(io_u->ddir) ||
+                   (ddir_sync(io_u->ddir) && td->runstate != TD_FSYNCING))
                        td->ts.total_io_u[io_u->ddir]++;
 
                if (td->io_u_queued >= td->o.iodepth_batch)