]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Linux 6.5 compat: BLK_STS_NEXUS renamed to BLK_STS_RESV_CONFLICT
authorColeman Kane <ckane@colemankane.org>
Fri, 14 Jul 2023 23:33:51 +0000 (19:33 -0400)
committerGitHub <noreply@github.com>
Fri, 14 Jul 2023 23:33:51 +0000 (16:33 -0700)
This change was introduced in Linux commit
7ba150834b840f6f5cdd07ca69a4ccf39df59a66

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #15059

config/kernel-blkdev.m4
include/os/linux/kernel/linux/blkdev_compat.h

index 28e5364581eab2ebbd02b76d7690556739e68e74..63d719f9c2da87363f645d7198709d40424442e2 100644 (file)
@@ -443,6 +443,29 @@ AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_GET_ERESTARTSYS], [
        ])
 ])
 
+dnl #
+dnl # 6.5.x API change
+dnl # BLK_STS_NEXUS replaced with BLK_STS_RESV_CONFLICT
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV_BLK_STS_RESV_CONFLICT], [
+       ZFS_LINUX_TEST_SRC([blk_sts_resv_conflict], [
+               #include <linux/blkdev.h>
+       ],[
+               blk_status_t s __attribute__ ((unused)) = BLK_STS_RESV_CONFLICT;
+       ])
+])
+
+AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_BLK_STS_RESV_CONFLICT], [
+       AC_MSG_CHECKING([whether BLK_STS_RESV_CONFLICT is defined])
+               ZFS_LINUX_TEST_RESULT([blk_sts_resv_conflict], [
+                       AC_DEFINE(HAVE_BLK_STS_RESV_CONFLICT, 1, [BLK_STS_RESV_CONFLICT is defined])
+                       AC_MSG_RESULT(yes)
+               ], [
+                       AC_MSG_RESULT(no)
+               ])
+       ])
+])
+
 AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV], [
        ZFS_AC_KERNEL_SRC_BLKDEV_GET_BY_PATH
        ZFS_AC_KERNEL_SRC_BLKDEV_PUT
@@ -458,6 +481,7 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV], [
        ZFS_AC_KERNEL_SRC_BLKDEV_ISSUE_SECURE_ERASE
        ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_KOBJ
        ZFS_AC_KERNEL_SRC_BLKDEV_PART_TO_DEV
+       ZFS_AC_KERNEL_SRC_BLKDEV_BLK_STS_RESV_CONFLICT
 ])
 
 AC_DEFUN([ZFS_AC_KERNEL_BLKDEV], [
@@ -476,4 +500,5 @@ AC_DEFUN([ZFS_AC_KERNEL_BLKDEV], [
        ZFS_AC_KERNEL_BLKDEV_ISSUE_SECURE_ERASE
        ZFS_AC_KERNEL_BLKDEV_BDEV_KOBJ
        ZFS_AC_KERNEL_BLKDEV_PART_TO_DEV
+       ZFS_AC_KERNEL_BLKDEV_BLK_STS_RESV_CONFLICT
 ])
index c5c6385be6ffd4c142cebbd6d7e1591953358f84..f1448587b98c65a1c71216d019e3db845b6fc06f 100644 (file)
@@ -181,7 +181,11 @@ bi_status_to_errno(blk_status_t status)
                return (ENOLINK);
        case BLK_STS_TARGET:
                return (EREMOTEIO);
+#ifdef HAVE_BLK_STS_RESV_CONFLICT
+       case BLK_STS_RESV_CONFLICT:
+#else
        case BLK_STS_NEXUS:
+#endif
                return (EBADE);
        case BLK_STS_MEDIUM:
                return (ENODATA);
@@ -215,7 +219,11 @@ errno_to_bi_status(int error)
        case EREMOTEIO:
                return (BLK_STS_TARGET);
        case EBADE:
+#ifdef HAVE_BLK_STS_RESV_CONFLICT
+               return (BLK_STS_RESV_CONFLICT);
+#else
                return (BLK_STS_NEXUS);
+#endif
        case ENODATA:
                return (BLK_STS_MEDIUM);
        case EILSEQ: