aboutsummaryrefslogtreecommitdiffstats
path: root/config/kernel-genhd-flags.m4
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2022-04-19 10:38:04 -0700
committerGitHub <[email protected]>2022-04-19 10:38:04 -0700
commit026f126b83c09b7aaaf9e10f57871283c9794a68 (patch)
treed7d1718506c6f7ef3f60d474e77bc42b40d2e37b /config/kernel-genhd-flags.m4
parentec4d860eb0771b8f9204716b96e4e6ff6c692a73 (diff)
Linux 5.17 compat: GENHD_FL_EXT_DEVT / GENHD_FL_NO_PART_SCAN
As of the 5.17 kernel the GENHD_FL_EXT_DEVT flag has been removed and the GENHD_FL_NO_PART_SCAN flag renamed GENHD_FL_NO_PART. Update zvol_alloc() to set GENHD_FL_NO_PART for the newer kernels which is sufficient. The behavior for prior kernels remains unchanged. 1ebe2e5f ("block: remove GENHD_FL_EXT_DEVT") 46e7eac6 ("block: rename GENHD_FL_NO_PART_SCAN to GENHD_FL_NO_PART") Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #13294 Closes #13297
Diffstat (limited to 'config/kernel-genhd-flags.m4')
-rw-r--r--config/kernel-genhd-flags.m458
1 files changed, 58 insertions, 0 deletions
diff --git a/config/kernel-genhd-flags.m4 b/config/kernel-genhd-flags.m4
new file mode 100644
index 000000000..af6a8a086
--- /dev/null
+++ b/config/kernel-genhd-flags.m4
@@ -0,0 +1,58 @@
+dnl #
+dnl # 5.17 API change,
+dnl #
+dnl # GENHD_FL_EXT_DEVT flag removed
+dnl # GENHD_FL_NO_PART_SCAN renamed GENHD_FL_NO_PART
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_SRC_GENHD_FLAGS], [
+
+ ZFS_LINUX_TEST_SRC([genhd_fl_ext_devt], [
+ #include <linux/blkdev.h>
+ ], [
+ int flags __attribute__ ((unused)) = GENHD_FL_EXT_DEVT;
+ ])
+
+ ZFS_LINUX_TEST_SRC([genhd_fl_no_part], [
+ #include <linux/blkdev.h>
+ ], [
+ int flags __attribute__ ((unused)) = GENHD_FL_NO_PART;
+ ])
+
+ ZFS_LINUX_TEST_SRC([genhd_fl_no_part_scan], [
+ #include <linux/blkdev.h>
+ ], [
+ int flags __attribute__ ((unused)) = GENHD_FL_NO_PART_SCAN;
+ ])
+])
+
+AC_DEFUN([ZFS_AC_KERNEL_GENHD_FLAGS], [
+
+ AC_MSG_CHECKING([whether GENHD_FL_EXT_DEVT flag is available])
+ ZFS_LINUX_TEST_RESULT([genhd_fl_ext_devt], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(ZFS_GENHD_FL_EXT_DEVT, GENHD_FL_EXT_DEVT,
+ [GENHD_FL_EXT_DEVT flag is available])
+ ], [
+ AC_MSG_RESULT(no)
+ AC_DEFINE(ZFS_GENHD_FL_EXT_DEVT, 0,
+ [GENHD_FL_EXT_DEVT flag is not available])
+ ])
+
+ AC_MSG_CHECKING([whether GENHD_FL_NO_PART flag is available])
+ ZFS_LINUX_TEST_RESULT([genhd_fl_no_part], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(ZFS_GENHD_FL_NO_PART, GENHD_FL_NO_PART,
+ [GENHD_FL_NO_PART flag is available])
+ ], [
+ AC_MSG_RESULT(no)
+
+ AC_MSG_CHECKING([whether GENHD_FL_NO_PART_SCAN flag is available])
+ ZFS_LINUX_TEST_RESULT([genhd_fl_no_part_scan], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(ZFS_GENHD_FL_NO_PART, GENHD_FL_NO_PART_SCAN,
+ [GENHD_FL_NO_PART_SCAN flag is available])
+ ], [
+ ZFS_LINUX_TEST_ERROR([GENHD_FL_NO_PART|GENHD_FL_NO_PART_SCAN])
+ ])
+ ])
+])