Make fdatasync OS optional
authorJens Axboe <jens.axboe@oracle.com>
Sun, 20 Dec 2009 21:29:10 +0000 (22:29 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Sun, 20 Dec 2009 21:29:10 +0000 (22:29 +0100)
OSX does not have it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
engines/sync.c
os/os-freebsd.h
os/os-linux.h
os/os-solaris.h

index 7c1cca63c700c4f318d1dd2003cc0fca5d52653f..c375e9a8ca8212b148920feaf0452ea6590d2e23 100644 (file)
@@ -162,9 +162,15 @@ static int fio_vsyncio_queue(struct thread_data *td, struct io_u *io_u)
 
                        return fio_io_end(td, io_u, ret);
                } else if (io_u->ddir == DDIR_DATASYNC) {
-                       int ret = fdatasync(io_u->file->fd);
-
+                       int ret;
+#ifdef FIO_HAVE_FDATASYNC
+                       ret = fdatasync(io_u->file->fd);
+#else
+                       ret = io_u->xfer_buflen;
+                       io_u->error = EINVAL;
+#endif
                        return fio_io_end(td, io_u, ret);
+                       
                }
        
                sd->queued = 0;
index 8d965aadf87ec84372f83bd07029f2e414c35992..062c44cdc3363c5ee6436257a78530f1e08bb221 100644 (file)
@@ -8,6 +8,7 @@
 #define FIO_HAVE_ODIRECT
 #define FIO_USE_GENERIC_BDEV_SIZE
 #define FIO_USE_GENERIC_RAND
+#define FIO_HAVE_FDATASYNC
 
 #define OS_MAP_ANON            MAP_ANON
 
index 7162dfa20fa7721434ccb23a9e3660909d776d36..01140e0d1ba0009942ec1913125324576c329de6 100644 (file)
@@ -33,6 +33,7 @@
 #define FIO_HAVE_PSHARED_MUTEX
 #define FIO_HAVE_CL_SIZE
 #define FIO_HAVE_CGROUPS
+#define FIO_HAVE_FDATASYNC
 
 #define OS_MAP_ANON            MAP_ANONYMOUS
 
index c6419d8370cfe1c7777cc575a3b86ba2cc18bf5c..f8ce1f31cf3d4b610f898b9da3eedc873190257d 100644 (file)
@@ -14,6 +14,7 @@
 #define FIO_HAVE_CPU_AFFINITY
 #define FIO_HAVE_PSHARED_MUTEX
 #define FIO_USE_GENERIC_BDEV_SIZE
+#define FIO_HAVE_FDATASYNC
 
 #define OS_MAP_ANON            MAP_ANON
 #define OS_RAND_MAX            2147483648UL