aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Norris <[email protected]>2024-08-03 12:39:20 +1000
committerBrian Behlendorf <[email protected]>2024-09-18 11:23:40 -0700
commit233bed67a864cb07bbeed6096e3e506d9c54c0f2 (patch)
treeb63dfe922ff48b863cf6c1693749674f69ef1e12
parent02f4b63db9965883e30e4e15cffbbd1ccca77437 (diff)
config: remove HAVE_1ARG_BIO_END_IO_T
Sponsored-by: https://despairlabs.com/sponsor/ Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Tino Reichardt <[email protected]> Signed-off-by: Rob Norris <[email protected]> Closes #16479
-rw-r--r--config/kernel-bio.m428
-rw-r--r--include/os/linux/kernel/linux/blkdev_compat.h11
-rw-r--r--module/os/linux/zfs/vdev_disk.c24
3 files changed, 1 insertions, 62 deletions
diff --git a/config/kernel-bio.m4 b/config/kernel-bio.m4
index b22c1a3de..9dddf0d3d 100644
--- a/config/kernel-bio.m4
+++ b/config/kernel-bio.m4
@@ -238,32 +238,6 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO_SET_DEV], [
])
dnl #
-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_SRC_BIO_END_IO_T_ARGS], [
- ZFS_LINUX_TEST_SRC([bio_end_io_t_args], [
- #include <linux/bio.h>
- static void wanted_end_io(struct bio *bio) { return; }
- bio_end_io_t *end_io __attribute__ ((unused)) = wanted_end_io;
- ], [])
-])
-
-AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [
- AC_MSG_CHECKING([whether bio_end_io_t wants 1 arg])
- ZFS_LINUX_TEST_RESULT([bio_end_io_t_args], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_1ARG_BIO_END_IO_T, 1,
- [bio_end_io_t wants 1 arg])
- ], [
- AC_MSG_RESULT(no)
- ])
-])
-
-dnl #
dnl # 4.13 API change
dnl # The bio->bi_error field was replaced with bio->bi_status which is an
dnl # enum which describes all possible error types.
@@ -513,7 +487,6 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_BIO], [
ZFS_AC_KERNEL_SRC_REQ
ZFS_AC_KERNEL_SRC_BIO_OPS
ZFS_AC_KERNEL_SRC_BIO_SET_DEV
- ZFS_AC_KERNEL_SRC_BIO_END_IO_T_ARGS
ZFS_AC_KERNEL_SRC_BIO_BI_STATUS
ZFS_AC_KERNEL_SRC_BIO_BVEC_ITER
ZFS_AC_KERNEL_SRC_BIO_SUBMIT_BIO
@@ -539,7 +512,6 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO], [
ZFS_AC_KERNEL_BIO_SET_OP_ATTRS
ZFS_AC_KERNEL_BIO_SET_DEV
- ZFS_AC_KERNEL_BIO_END_IO_T_ARGS
ZFS_AC_KERNEL_BIO_BI_STATUS
ZFS_AC_KERNEL_BIO_BVEC_ITER
ZFS_AC_KERNEL_BIO_SUBMIT_BIO
diff --git a/include/os/linux/kernel/linux/blkdev_compat.h b/include/os/linux/kernel/linux/blkdev_compat.h
index c2e818b4d..9e89cf562 100644
--- a/include/os/linux/kernel/linux/blkdev_compat.h
+++ b/include/os/linux/kernel/linux/blkdev_compat.h
@@ -276,12 +276,6 @@ errno_to_bi_status(int error)
}
#endif /* HAVE_BIO_BI_STATUS */
-/*
- * 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_1ARG_BIO_END_IO_T
#ifdef HAVE_BIO_BI_STATUS
#define BIO_END_IO_ERROR(bio) bi_status_to_errno(bio->bi_status)
#define BIO_END_IO_PROTO(fn, x, z) static void fn(struct bio *x)
@@ -306,11 +300,6 @@ bio_set_bi_error(struct bio *bio, int error)
}
#endif /* HAVE_BIO_BI_STATUS */
-#else
-#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 */
-
/*
* 5.15 MACRO,
* GD_DEAD
diff --git a/module/os/linux/zfs/vdev_disk.c b/module/os/linux/zfs/vdev_disk.c
index e69c5f384..92510ea33 100644
--- a/module/os/linux/zfs/vdev_disk.c
+++ b/module/os/linux/zfs/vdev_disk.c
@@ -813,15 +813,7 @@ BIO_END_IO_PROTO(vbio_completion, bio, error)
ASSERT(zio);
/* Capture and log any errors */
-#ifdef HAVE_1ARG_BIO_END_IO_T
zio->io_error = BIO_END_IO_ERROR(bio);
-#else
- zio->io_error = 0;
- if (error)
- zio->io_error = -(error);
- else if (!test_bit(BIO_UPTODATE, &bio->bi_flags))
- zio->io_error = EIO;
-#endif
ASSERT3U(zio->io_error, >=, 0);
if (zio->io_error)
@@ -1077,14 +1069,7 @@ BIO_END_IO_PROTO(vdev_classic_physio_completion, bio, error)
dio_request_t *dr = bio->bi_private;
if (dr->dr_error == 0) {
-#ifdef HAVE_1ARG_BIO_END_IO_T
dr->dr_error = BIO_END_IO_ERROR(bio);
-#else
- if (error)
- dr->dr_error = -(error);
- else if (!test_bit(BIO_UPTODATE, &bio->bi_flags))
- dr->dr_error = EIO;
-#endif
}
/* Drop reference acquired by vdev_classic_physio */
@@ -1226,11 +1211,7 @@ retry:
BIO_END_IO_PROTO(vdev_disk_io_flush_completion, bio, error)
{
zio_t *zio = bio->bi_private;
-#ifdef HAVE_1ARG_BIO_END_IO_T
zio->io_error = BIO_END_IO_ERROR(bio);
-#else
- zio->io_error = -error;
-#endif
if (zio->io_error && (zio->io_error == EOPNOTSUPP))
zio->io_vd->vdev_nowritecache = B_TRUE;
@@ -1268,11 +1249,8 @@ vdev_disk_io_flush(struct block_device *bdev, zio_t *zio)
BIO_END_IO_PROTO(vdev_disk_discard_end_io, bio, error)
{
zio_t *zio = bio->bi_private;
-#ifdef HAVE_1ARG_BIO_END_IO_T
zio->io_error = BIO_END_IO_ERROR(bio);
-#else
- zio->io_error = -error;
-#endif
+
bio_put(bio);
if (zio->io_error)
vdev_disk_error(zio);