diff options
author | Lukas Wunner <[email protected]> | 2015-09-23 17:55:15 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2015-09-25 12:44:54 -0700 |
commit | 784a7fe5d9a0c02e96f3ae019a08ecebee2a7018 (patch) | |
tree | 2a2c0491137685e4d89014930ca9cd2aac2a898c /include | |
parent | 4a4809faab83be1bc723086ad44816bacf646ae3 (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.h | 21 |
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, |