Update libaio/posixaio/splice for sync updates
authorJens Axboe <jens.axboe@oracle.com>
Tue, 9 Mar 2010 20:47:15 +0000 (21:47 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 9 Mar 2010 20:47:15 +0000 (21:47 +0100)
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
engines/libaio.c
engines/posixaio.c
engines/splice.c

index bd8ebb8b65553fe1c8067815811b8a9393b788dc..ff5709b4e9e35c593ed6b219b73ded16c13ef3ea 100644 (file)
@@ -97,19 +97,11 @@ static int fio_libaio_queue(struct thread_data *td, struct io_u *io_u)
         * support aio fsync yet. So return busy for the case where we
         * have pending io, to let fio complete those first.
         */
         * support aio fsync yet. So return busy for the case where we
         * have pending io, to let fio complete those first.
         */
-       if (io_u->ddir == DDIR_SYNC) {
+       if (ddir_sync(io_u->ddir)) {
                if (ld->iocbs_nr)
                        return FIO_Q_BUSY;
                if (ld->iocbs_nr)
                        return FIO_Q_BUSY;
-               if (fsync(io_u->file->fd) < 0)
-                       io_u->error = errno;
-
-               return FIO_Q_COMPLETED;
-       } else if (io_u->ddir == DDIR_DATASYNC) {
-               if (ld->iocbs_nr)
-                       return FIO_Q_BUSY;
-               if (fdatasync(io_u->file->fd) < 0)
-                       io_u->error = errno;
 
 
+               do_io_u_sync(td, io_u);
                return FIO_Q_COMPLETED;
        }
 
                return FIO_Q_COMPLETED;
        }
 
index 3ffdcb6bccc8d062b1be302b27c3cb004bd57d11..70282f2975f660185fa832dcbf868850e011f0a1 100644 (file)
@@ -175,9 +175,7 @@ static int fio_posixaio_queue(struct thread_data fio_unused *td,
                if (pd->queued)
                        return FIO_Q_BUSY;
 
                if (pd->queued)
                        return FIO_Q_BUSY;
 
-               if (fsync(io_u->file->fd) < 0)
-                       io_u->error = errno;
-
+               do_io_u_sync(td, io_u);
                return FIO_Q_COMPLETED;
 #endif
        }
                return FIO_Q_COMPLETED;
 #endif
        }
index ca43e4343df66f0ddb2e3a10fc4f2f691a7090d7..e9b6aadd696bf4daeb62dc0422a75a89c9710ae5 100644 (file)
@@ -224,7 +224,7 @@ static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u)
        } else if (io_u->ddir == DDIR_WRITE)
                ret = fio_splice_write(td, io_u);
        else
        } else if (io_u->ddir == DDIR_WRITE)
                ret = fio_splice_write(td, io_u);
        else
-               ret = fsync(io_u->file->fd);
+               ret = do_io_u_sync(td, io_u);
 
        if (ret != (int) io_u->xfer_buflen) {
                if (ret >= 0) {
 
        if (ret != (int) io_u->xfer_buflen) {
                if (ret >= 0) {