Linux 2.6.36 compat, synchronous bio flag
[zfs.git] / config / kernel-bio-rw-syncio.m4
index 2c80f5c..6f8b5b5 100644 (file)
@@ -1,7 +1,24 @@
 dnl #
-dnl # 2.6.29 API change
-dnl # BIO_RW_SYNC renamed to BIO_RW_SYNCIO
+dnl # Preferred interface for flagging a synchronous bio:
+dnl # 2.6.12-2.6.29: BIO_RW_SYNC
+dnl # 2.6.30-2.6.35: BIO_RW_SYNCIO
+dnl # 2.6.36-2.6.xx: REQ_SYNC
 dnl #
+AC_DEFUN([ZFS_AC_KERNEL_BIO_RW_SYNC], [
+       AC_MSG_CHECKING([whether BIO_RW_SYNC is defined])
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/bio.h>
+       ],[
+               int flags;
+               flags = BIO_RW_SYNC;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_BIO_RW_SYNC, 1, [BIO_RW_SYNC is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
 AC_DEFUN([ZFS_AC_KERNEL_BIO_RW_SYNCIO], [
        AC_MSG_CHECKING([whether BIO_RW_SYNCIO is defined])
        ZFS_LINUX_TRY_COMPILE([
@@ -11,8 +28,22 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO_RW_SYNCIO], [
                flags = BIO_RW_SYNCIO;
        ],[
                AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_BIO_RW_SYNCIO, 1,
-                         [BIO_RW_SYNCIO is defined])
+               AC_DEFINE(HAVE_BIO_RW_SYNCIO, 1, [BIO_RW_SYNCIO is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+AC_DEFUN([ZFS_AC_KERNEL_REQ_SYNC], [
+       AC_MSG_CHECKING([whether REQ_SYNC is defined])
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/bio.h>
+       ],[
+               int flags;
+               flags = REQ_SYNC;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_REQ_SYNC, 1, [REQ_SYNC is defined])
        ],[
                AC_MSG_RESULT(no)
        ])