Put the ->real_file_size handling into fio
[fio.git] / engines / guasi.c
index 925c364a83019b84ac01d2136bc9a767e68cdf55..1b717be87eda7184ee8828c8697c52d917ecd15e 100644 (file)
@@ -20,7 +20,6 @@
 #include <assert.h>
 
 #include "../fio.h"
-#include "../os.h"
 
 #ifdef FIO_HAVE_GUASI
 
@@ -67,7 +66,7 @@ static struct io_u *fio_guasi_event(struct thread_data *td, int event)
 
        GDBG_PRINT(("fio_guasi_event(%d)\n", event));
        if (guasi_req_info(ld->reqs[event], &rinf) < 0) {
-               fprintf(stderr, "guasi_req_info(%d) FAILED!\n", event);
+               log_err("guasi_req_info(%d) FAILED!\n", event);
                return NULL;
        }
        io_u = rinf.asid;
@@ -111,7 +110,7 @@ static int fio_guasi_getevents(struct thread_data *td, int min, int max,
                r = guasi_fetch(ld->hctx, ld->reqs + n, min - n,
                                max - n, timeo);
                if (r < 0) {
-                       fprintf(stderr, "guasi_fetch() FAILED! (%d)\n", r);
+                       log_err("guasi_fetch() FAILED! (%d)\n", r);
                        break;
                }
                n += r;
@@ -175,11 +174,11 @@ static int fio_guasi_commit(struct thread_data *td)
                else if (io_u->ddir == DDIR_SYNC)
                        io_u->greq = guasi__fsync(ld->hctx, ld, io_u, 0, f->fd);
                else {
-                       fprintf(stderr, "fio_guasi_commit() FAILED: unknow request %d\n",
+                       log_err("fio_guasi_commit() FAILED: unknow request %d\n",
                                io_u->ddir);
                }
                if (io_u->greq == NULL) {
-                       fprintf(stderr, "fio_guasi_commit() FAILED: submit failed (%s)\n",
+                       log_err("fio_guasi_commit() FAILED: submit failed (%s)\n",
                                strerror(errno));
                        return -1;
                }
@@ -206,9 +205,12 @@ static int fio_guasi_cancel(struct thread_data *td, struct io_u *io_u)
 static void fio_guasi_cleanup(struct thread_data *td)
 {
        struct guasi_data *ld = td->io_ops->data;
+       int n;
 
        GDBG_PRINT(("fio_guasi_cleanup(%p)\n", ld));
        if (ld) {
+               for (n = 0; n < ld->reqs_nr; n++)
+                       guasi_req_free(ld->reqs[n]);
                guasi_free(ld->hctx);
                free(ld->reqs);
                free(ld->io_us);
@@ -228,7 +230,7 @@ static int fio_guasi_init(struct thread_data *td)
        maxthr = td->o.iodepth > GFIO_MIN_THREADS ? td->o.iodepth: GFIO_MIN_THREADS;
        if (maxthr > GFIO_MAX_THREADS)
                maxthr = GFIO_MAX_THREADS;
-       if ((ld->hctx = guasi_create(GFIO_MIN_THREADS, maxthr, 1, 0)) == NULL) {
+       if ((ld->hctx = guasi_create(GFIO_MIN_THREADS, maxthr, 1)) == NULL) {
                td_verror(td, errno, "guasi_create");
                free(ld);
                return 1;