aboutsummaryrefslogtreecommitdiffstats
path: root/include
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 /include
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 'include')
-rw-r--r--include/linux/blkdev_compat.h21
1 files changed, 9 insertions, 12 deletions
diff --git a/include/linux/blkdev_compat.h b/include/linux/blkdev_compat.h
index 162b315ea..868b89c55 100644
--- a/include/linux/blkdev_compat.h
+++ b/include/linux/blkdev_compat.h
@@ -182,20 +182,17 @@ bio_set_flags_failfast(struct block_device *bdev, int *flags)
#endif /* DISK_NAME_LEN */
/*
- * 2.6.24 API change,
- * The bio_end_io() prototype changed slightly. These are helper
- * macro's to ensure the prototype and return value are handled.
+ * 4.3 API change
+ * The bio_endio() prototype changed slightly. These are helper
+ * macro's to ensure the prototype and invocation are handled.
*/
-#ifdef HAVE_2ARGS_BIO_END_IO_T
-#define BIO_END_IO_PROTO(fn, x, y, z) static void fn(struct bio *x, int z)
-#define BIO_END_IO_RETURN(rc) return
+#ifdef HAVE_1ARG_BIO_END_IO_T
+#define BIO_END_IO_PROTO(fn, x, z) static void fn(struct bio *x)
+#define BIO_END_IO(bio, error) bio->bi_error = error; bio_endio(bio);
#else
-#define BIO_END_IO_PROTO(fn, x, y, z) static int fn( \
- struct bio *x, \
- unsigned int y, \
- int z)
-#define BIO_END_IO_RETURN(rc) return rc
-#endif /* HAVE_2ARGS_BIO_END_IO_T */
+#define BIO_END_IO_PROTO(fn, x, z) static void fn(struct bio *x, int z)
+#define BIO_END_IO(bio, error) bio_endio(bio, error);
+#endif /* HAVE_1ARG_BIO_END_IO_T */
/*
* 2.6.38 - 2.6.x API,