summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/kernel-bio-failfast.m441
-rw-r--r--config/kernel.m42
2 files changed, 39 insertions, 4 deletions
diff --git a/config/kernel-bio-failfast.m4 b/config/kernel-bio-failfast.m4
index acc657562..c45175bdd 100644
--- a/config/kernel-bio-failfast.m4
+++ b/config/kernel-bio-failfast.m4
@@ -1,9 +1,26 @@
dnl #
-dnl # 2.6.28 API change
-dnl # Device, transport, and driver FAILFAST flags were added and
-dnl # the now legacy BIO_RW_FAILFAST flag was removed.
+dnl # Preferred interface for setting FAILFAST on a bio:
+dnl # 2.6.12-2.6.27: BIO_RW_FAILFAST
+dnl # 2.6.28-2.6.35: BIO_RW_FAILFAST_{DEV|TRANSPORT|DRIVER}
+dnl # 2.6.36-2.6.xx: REQ_FAILFAST_{DEV|TRANSPORT|DRIVER}
dnl #
AC_DEFUN([ZFS_AC_KERNEL_BIO_FAILFAST], [
+ AC_MSG_CHECKING([whether BIO_RW_FAILFAST is defined])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/bio.h>
+ ],[
+ int flags;
+ flags = (1 << BIO_RW_FAILFAST);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BIO_RW_FAILFAST, 1,
+ [BIO_RW_FAILFAST is defined])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+])
+
+AC_DEFUN([ZFS_AC_KERNEL_BIO_FAILFAST_DTD], [
AC_MSG_CHECKING([whether BIO_RW_FAILFAST_* are defined])
ZFS_LINUX_TRY_COMPILE([
#include <linux/bio.h>
@@ -14,9 +31,25 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO_FAILFAST], [
(1 << BIO_RW_FAILFAST_DRIVER));
],[
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_BIO_RW_FAILFAST, 1,
+ AC_DEFINE(HAVE_BIO_RW_FAILFAST_DTD, 1,
[BIO_RW_FAILFAST_* are defined])
],[
AC_MSG_RESULT(no)
])
])
+
+AC_DEFUN([ZFS_AC_KERNEL_REQ_FAILFAST_MASK], [
+ AC_MSG_CHECKING([whether REQ_FAILFAST_MASK is defined])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/bio.h>
+ ],[
+ int flags;
+ flags = REQ_FAILFAST_MASK;
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BIO_REQ_FAILFAST_MASK, 1,
+ [REQ_FAILFAST_MASK is defined])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+])
diff --git a/config/kernel.m4 b/config/kernel.m4
index 517af39f7..c73284062 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -13,6 +13,8 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
ZFS_AC_KERNEL_BDEV_LOGICAL_BLOCK_SIZE
ZFS_AC_KERNEL_BIO_EMPTY_BARRIER
ZFS_AC_KERNEL_BIO_FAILFAST
+ ZFS_AC_KERNEL_BIO_FAILFAST_DTD
+ ZFS_AC_KERNEL_REQ_FAILFAST_MASK
ZFS_AC_KERNEL_BIO_END_IO_T_ARGS
ZFS_AC_KERNEL_BIO_RW_SYNCIO
ZFS_AC_KERNEL_BLK_END_REQUEST