summaryrefslogtreecommitdiffstats
path: root/config/kernel-bio-end-io-t-args.m4
diff options
context:
space:
mode:
authorLukas Wunner <[email protected]>2015-09-23 17:55:15 +0200
committerBrian Behlendorf <[email protected]>2015-09-25 12:44:54 -0700
commit784a7fe5d9a0c02e96f3ae019a08ecebee2a7018 (patch)
tree2a2c0491137685e4d89014930ca9cd2aac2a898c /config/kernel-bio-end-io-t-args.m4
parent4a4809faab83be1bc723086ad44816bacf646ae3 (diff)
Linux 4.3 compat: bio_end_io_t / BIO_UPTODATE
Commit torvalds/linux@4246a0b63bd8f56a1469b12eafeb875b1041a451 ("block: add a bi_error field to struct bio") dropped the error argument from bio_endio in favor of newly introduced bio->bi_error. This also replaces bio->bi_flags value BIO_UPTODATE. bio_endio was a 3 argument function until Linux 2.6.24, which made it a 2 argument function, and now the prototype has changed yet again to a 1 argument function. Support for pre 2.6.24 kernels was already dropped with 37f9dac592bf ("zvol processing should use struct bio") which assumed the 2 argument version in zvol_request(). Remaining code to support the 3 argument version is hereby removed. Signed-off-by: Brian Behlendorf <[email protected]> Signed-off-by: Lukas Wunner <[email protected]> Issue #3799
Diffstat (limited to 'config/kernel-bio-end-io-t-args.m4')
-rw-r--r--config/kernel-bio-end-io-t-args.m420
1 files changed, 9 insertions, 11 deletions
diff --git a/config/kernel-bio-end-io-t-args.m4 b/config/kernel-bio-end-io-t-args.m4
index 407e55cd0..c8c520f1b 100644
--- a/config/kernel-bio-end-io-t-args.m4
+++ b/config/kernel-bio-end-io-t-args.m4
@@ -1,25 +1,23 @@
dnl #
-dnl # 2.6.24 API change
-dnl # Size argument dropped from bio_endio and bi_end_io, because the
-dnl # bi_end_io is only called once now when the request is complete.
-dnl # There is no longer any need for a size argument. This also means
-dnl # that partial IO's are no longer possibe and the end_io callback
-dnl # should not check bi->bi_size. Finally, the return type was updated
-dnl # to void.
+dnl # 4.3 API change
+dnl # Error argument dropped from bio_endio in favor of newly introduced
+dnl # bio->bi_error. This also replaces bio->bi_flags value BIO_UPTODATE.
+dnl # Introduced by torvalds/linux@4246a0b63bd8f56a1469b12eafeb875b1041a451
+dnl # ("block: add a bi_error field to struct bio").
dnl #
AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [
- AC_MSG_CHECKING([whether bio_end_io_t wants 2 args])
+ AC_MSG_CHECKING([whether bio_end_io_t wants 1 arg])
ZFS_LINUX_TRY_COMPILE([
#include <linux/bio.h>
- void wanted_end_io(struct bio *bio, int x) { return; }
+ void wanted_end_io(struct bio *bio) { return; }
bio_end_io_t *end_io __attribute__ ((unused)) = wanted_end_io;
],[
],[
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_2ARGS_BIO_END_IO_T, 1,
- [bio_end_io_t wants 2 args])
+ AC_DEFINE(HAVE_1ARG_BIO_END_IO_T, 1,
+ [bio_end_io_t wants 1 arg])
],[
AC_MSG_RESULT(no)
])