Add generic bdev_size function
authorJens Axboe <jens.axboe@oracle.com>
Tue, 22 Sep 2009 15:12:29 +0000 (17:12 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 22 Sep 2009 15:12:29 +0000 (17:12 +0200)
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
os/os-freebsd.h
os/os-solaris.h
os/os.h

index 26bb8a096790b40d4f4194b2288d1a955596f3b9..f4c5e235b698986e030ddc18f3dbd164ca918215 100644 (file)
@@ -6,23 +6,13 @@
 
 #define FIO_HAVE_POSIXAIO
 #define FIO_HAVE_ODIRECT
+#define FIO_USE_GENERIC_BDEV_SIZE
 
 #define OS_MAP_ANON            MAP_ANON
 
 typedef unsigned long os_cpu_mask_t;
 typedef unsigned int os_random_state_t;
 
-static inline int blockdev_size(int fd, unsigned long long *bytes)
-{
-       off_t end = lseek(fd, 0, SEEK_END);
-
-       if (end < 0)
-               return errno;
-
-       *bytes = end;
-       return 0;
-}
-
 static inline int blockdev_invalidate_cache(int fd)
 {
        return EINVAL;
index 5029d38f356e5983992bb58ae04cfffa77773a5d..ff8d6f25d6ca6a02497d7cab081873dad376a6c5 100644 (file)
@@ -12,6 +12,7 @@
 #define FIO_HAVE_POSIXAIO_FSYNC
 #define FIO_HAVE_CPU_AFFINITY
 #define FIO_HAVE_PSHARED_MUTEX
+#define FIO_USE_GENERIC_BDEV_SIZE
 
 #define OS_MAP_ANON            MAP_ANON
 #define OS_RAND_MAX            2147483648UL
@@ -23,17 +24,6 @@ struct solaris_rand_seed {
 typedef psetid_t os_cpu_mask_t;
 typedef struct solaris_rand_seed os_random_state_t;
 
-static inline int blockdev_size(int fd, unsigned long long *bytes)
-{
-       off_t end = lseek(fd, 0, SEEK_END);
-
-       if (end < 0)
-               return errno;
-
-       *bytes = end;
-       return 0;
-}
-
 static inline int blockdev_invalidate_cache(int fd)
 {
        return EINVAL;
diff --git a/os/os.h b/os/os.h
index 10e796fbcbe3313d1faee845bc26d751645aa011..1afb4b227521e3846b087d401b7297201d45cbbb 100644 (file)
--- a/os/os.h
+++ b/os/os.h
@@ -106,4 +106,17 @@ static inline int os_cache_line_size(void)
 #endif
 }
 
+#ifdef FIO_USE_GENERIC_BDEV_SIZE
+static inline int blockdev_size(int fd, unsigned long long *bytes)
+{
+       off_t end = lseek(fd, 0, SEEK_END);
+
+       if (end < 0)
+               return errno;
+
+       *bytes = end;
+       return 0;
+}
+#endif
+
 #endif