mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 11:19:32 +03:00
a5e046eaac
[bio] The req_op enum was changed to req_opf. Update the "Linux 4.8 API" autotools checks to use an int to determine whether the various REQ_OP values are defined. This should work properly on kernels >= 4.8. [bio] bio_set_op_attrs() is now an inline function and can't be detected with #ifdef. Add a configure check to determine whether bio_set_op_attrs() is defined. Move the local definition of it from vdev_disk.c to blkdev_compat.h for consistency with other related compability shims. [bio] The read/write flags and their modifiers, including WRITE_FLUSH, WRITE_FUA and WRITE_FLUSH_FUA have been removed from fs.h. Add the new bio_set_flush() compatibility wrapper to replace VDEV_WRITE_FLUSH_FUA and set the flags appropriately for each supported kernel version. [vfs] The generic_readlink() function has been made static. If .readlink in inode_operations is NULL, generic_readlink() is used. [zol typo] Completely unrelated to 4.10 compat, fix a typo in the check for REQ_OP_SECURE_ERASE so that the proper macro is defined: s/HAVE_REQ_OP_SECURE_DISCARD/HAVE_REQ_OP_SECURE_ERASE/ Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Chunwei Chen <david.chen@osnexus.com> Signed-off-by: Tim Chase <tim@chase2k.com> Closes #5499
85 lines
1.9 KiB
Plaintext
85 lines
1.9 KiB
Plaintext
dnl #
|
|
dnl # Linux 4.8 API,
|
|
dnl #
|
|
dnl # The bio_op() helper was introduced as a replacement for explicitly
|
|
dnl # checking the bio->bi_rw flags. The following checks are used to
|
|
dnl # detect if a specific operation is supported.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_REQ_OP_DISCARD], [
|
|
AC_MSG_CHECKING([whether REQ_OP_DISCARD is defined])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/blk_types.h>
|
|
],[
|
|
int op __attribute__ ((unused)) = REQ_OP_DISCARD;
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_REQ_OP_DISCARD, 1,
|
|
[REQ_OP_DISCARD is defined])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_REQ_OP_SECURE_ERASE], [
|
|
AC_MSG_CHECKING([whether REQ_OP_SECURE_ERASE is defined])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/blk_types.h>
|
|
],[
|
|
int op __attribute__ ((unused)) = REQ_OP_SECURE_ERASE;
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_REQ_OP_SECURE_ERASE, 1,
|
|
[REQ_OP_SECURE_ERASE is defined])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_REQ_OP_FLUSH], [
|
|
AC_MSG_CHECKING([whether REQ_OP_FLUSH is defined])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/blk_types.h>
|
|
],[
|
|
int op __attribute__ ((unused)) = REQ_OP_FLUSH;
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_REQ_OP_FLUSH, 1,
|
|
[REQ_OP_FLUSH is defined])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_BIO_BI_OPF], [
|
|
AC_MSG_CHECKING([whether bio->bi_opf is defined])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/bio.h>
|
|
],[
|
|
struct bio bio __attribute__ ((unused));
|
|
bio.bi_opf = 0;
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_BIO_BI_OPF, 1, [bio->bi_opf is defined])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_HAVE_BIO_SET_OP_ATTRS], [
|
|
AC_MSG_CHECKING([whether bio_set_op_attrs is available])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/blk_types.h>
|
|
],[
|
|
struct bio *bio __attribute__ ((unused)) = NULL;
|
|
|
|
bio_set_op_attrs(bio, 0, 0);
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_BIO_SET_OP_ATTRS, 1,
|
|
[bio_set_op_attrs is available])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|