mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
Linux 2.6.36 compat, synchronous bio flag
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
This commit is contained in:
@@ -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)
|
||||
])
|
||||
|
||||
@@ -16,7 +16,9 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
|
||||
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_SYNC
|
||||
ZFS_AC_KERNEL_BIO_RW_SYNCIO
|
||||
ZFS_AC_KERNEL_REQ_SYNC
|
||||
ZFS_AC_KERNEL_BLK_END_REQUEST
|
||||
ZFS_AC_KERNEL_BLK_FETCH_REQUEST
|
||||
ZFS_AC_KERNEL_BLK_REQUEUE_REQUEST
|
||||
|
||||
Reference in New Issue
Block a user