forked from openzfs/zfs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Linux 4.8 compat: Fix removal of bio->bi_rw member
All users of bio->bi_rw have been replaced with compatibility wrappers. This allows the kernel specific logic to be abstracted away, and for each of the supported cases to be documented with the wrapper. The updated interfaces are as follows: * void blk_queue_set_write_cache(struct request_queue *, bool, bool) * boolean_t bio_is_flush(struct bio *) * boolean_t bio_is_fua(struct bio *) * boolean_t bio_is_discard(struct bio *) * boolean_t bio_is_secure_erase(struct bio *) * VDEV_WRITE_FLUSH_FUA Signed-off-by: Brian Behlendorf <[email protected]> Signed-off-by: Chunwei Chen <[email protected]> Closes openzfs#4951
- Loading branch information
1 parent
8866672
commit e4ce9b6
Showing
4 changed files
with
190 additions
and
77 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
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> | ||
],[ | ||
enum req_op 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> | ||
],[ | ||
enum req_op op __attribute__ ((unused)) = REQ_OP_SECURE_ERASE; | ||
],[ | ||
AC_MSG_RESULT(yes) | ||
AC_DEFINE(HAVE_REQ_OP_SECURE_DISCARD, 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> | ||
],[ | ||
enum req_op 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) | ||
]) | ||
]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters