675de5aa37
The name of the flag used to mark a bio as synchronous has changed again in the 2.6.36 kernel due to the unification of the BIO_RW_* and REQ_* flags. The new flag is called REQ_SYNC. To simplify checking this flag I have introduced the vdev_disk_dio_is_sync() helper function. Based on the results of several new autoconf tests it uses the correct mask to check for a synchronous bio. Preferred interface for flagging a synchronous bio: 2.6.12-2.6.29: BIO_RW_SYNC 2.6.30-2.6.35: BIO_RW_SYNCIO 2.6.36-2.6.xx: REQ_SYNC
51 lines
1.0 KiB
Plaintext
51 lines
1.0 KiB
Plaintext
dnl #
|
|
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([
|
|
#include <linux/bio.h>
|
|
],[
|
|
int flags;
|
|
flags = BIO_RW_SYNCIO;
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
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)
|
|
])
|
|
])
|