diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/kernel-bio-failfast.m4 | 41 | ||||
-rw-r--r-- | config/kernel.m4 | 2 |
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 |