mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 11:29:36 +03:00
f4af6bb783
As of linux-2.6.36 the BIO_RW_FAILFAST and REQ_FAILFAST flags have been unified under the REQ_* names. These flags always had to be kept in-sync so this is a nice step forward, unfortunately it means we need to be careful to only use the new unified flags when the BIO_RW_* flags are not defined. Additional autoconf checks were added for this and if it is ever unclear which method to use no flags are set. This is safe but may result in longer delays before a disk is failed. Perferred interface for setting FAILFAST on a bio: 2.6.12-2.6.27: BIO_RW_FAILFAST 2.6.28-2.6.35: BIO_RW_FAILFAST_{DEV|TRANSPORT|DRIVER} 2.6.36-2.6.xx: REQ_FAILFAST_{DEV|TRANSPORT|DRIVER}
56 lines
1.3 KiB
Plaintext
56 lines
1.3 KiB
Plaintext
dnl #
|
|
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>
|
|
],[
|
|
int flags;
|
|
flags = ((1 << BIO_RW_FAILFAST_DEV) |
|
|
(1 << BIO_RW_FAILFAST_TRANSPORT) |
|
|
(1 << BIO_RW_FAILFAST_DRIVER));
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
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)
|
|
])
|
|
])
|