mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Linux 4.3 compat: bio_end_io_t / BIO_UPTODATE
Commit torvalds/linux@4246a0b63b
("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 37f9dac592 ("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 <behlendorf1@llnl.gov>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Issue #3799
This commit is contained in:
committed by
Brian Behlendorf
parent
4a4809faab
commit
784a7fe5d9
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user