[PATCH] Move td_io_sync()
authorJens Axboe <jens.axboe@oracle.com>
Tue, 24 Oct 2006 12:54:44 +0000 (14:54 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 24 Oct 2006 12:54:44 +0000 (14:54 +0200)
It's not an io engine operation anymore, so move it to fio.c, make
it static, and rename it to fio_io_sync().

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
fio.c
ioengines.c

diff --git a/fio.c b/fio.c
index fc653b3d9016e9b7553ac5cadbb37a870ba00a9d..0dbce58835ad83e76e6855f7d4f100c9509decaa 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -193,6 +193,50 @@ static void cleanup_pending_aio(struct thread_data *td)
        }
 }
 
+/*
+ * Helper to handle the final sync of a file. Works just like the normal
+ * io path, just does everything sync.
+ */
+static int fio_io_sync(struct thread_data *td, struct fio_file *f)
+{
+       struct io_u *io_u = __get_io_u(td);
+       struct io_completion_data icd;
+       int ret;
+
+       if (!io_u)
+               return 1;
+
+       io_u->ddir = DDIR_SYNC;
+       io_u->file = f;
+
+       if (td_io_prep(td, io_u)) {
+               put_io_u(td, io_u);
+               return 1;
+       }
+
+       ret = td_io_queue(td, io_u);
+       if (ret) {
+               put_io_u(td, io_u);
+               td_verror(td, ret);
+               return 1;
+       }
+
+       ret = td_io_getevents(td, 1, td->cur_depth, NULL);
+       if (ret < 0) {
+               td_verror(td, -ret);
+               return 1;
+       }
+
+       icd.nr = ret;
+       ios_completed(td, &icd);
+       if (icd.error) {
+               td_verror(td, icd.error);
+               return 1;
+       }
+
+       return 0;
+}
+
 /*
  * The main verify engine. Runs over the writes we previusly submitted,
  * reads the blocks back in, and checks the crc/md5 of the data.
@@ -210,7 +254,7 @@ void do_verify(struct thread_data *td)
         * read from disk.
         */
        for_each_file(td, f, i) {
-               td_io_sync(td, f);
+               fio_io_sync(td, f);
                file_invalidate_cache(td, f);
        }
 
@@ -413,7 +457,7 @@ static void do_io(struct thread_data *td)
                if (should_fsync(td) && td->end_fsync) {
                        td_set_runstate(td, TD_FSYNCING);
                        for_each_file(td, f, i)
-                               td_io_sync(td, f);
+                               fio_io_sync(td, f);
                }
        }
 }
index bb46c293e3aed69dffd681095381fc1cd4a39344..115e6f2c7c96ae22322225f0c2097aa8ab9418e0 100644 (file)
@@ -111,46 +111,6 @@ int td_io_prep(struct thread_data *td, struct io_u *io_u)
        return 0;
 }
 
-int td_io_sync(struct thread_data *td, struct fio_file *f)
-{
-       struct io_u *io_u = __get_io_u(td);
-       struct io_completion_data icd;
-       int ret;
-
-       if (!io_u)
-               return 1;
-
-       io_u->ddir = DDIR_SYNC;
-       io_u->file = f;
-
-       if (td_io_prep(td, io_u)) {
-               put_io_u(td, io_u);
-               return 1;
-       }
-
-       ret = td_io_queue(td, io_u);
-       if (ret) {
-               put_io_u(td, io_u);
-               td_verror(td, ret);
-               return 1;
-       }
-
-       ret = td_io_getevents(td, 1, td->cur_depth, NULL);
-       if (ret < 0) {
-               td_verror(td, -ret);
-               return 1;
-       }
-
-       icd.nr = ret;
-       ios_completed(td, &icd);
-       if (icd.error) {
-               td_verror(td, icd.error);
-               return 1;
-       }
-
-       return 0;
-}
-
 int td_io_getevents(struct thread_data *td, int min, int max,
                    struct timespec *t)
 {