aboutsummaryrefslogtreecommitdiffstats
path: root/config/kernel-blk-queue.m4
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2022-05-27 17:51:55 +0000
committerBrian Behlendorf <[email protected]>2022-06-01 14:24:49 -0700
commit9ce5eb18efba19c615e82836fdd9fa77079087d4 (patch)
tree40651346129efd5dce3dfaaa82b21f575ca184c0 /config/kernel-blk-queue.m4
parent5a639f0802b2ef4feb6f6fe37599c47a26f9b1f0 (diff)
Linux 5.19 compat: bdev_max_discard_sectors()
Linux 5.19 commit torvalds/linux@70200574cc removed the blk_queue_discard() helper function. The preferred interface is to now use the bdev_max_discard_sectors() function to check for discard support. Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #13515
Diffstat (limited to 'config/kernel-blk-queue.m4')
-rw-r--r--config/kernel-blk-queue.m432
1 files changed, 27 insertions, 5 deletions
diff --git a/config/kernel-blk-queue.m4 b/config/kernel-blk-queue.m4
index 091952f57..b38991783 100644
--- a/config/kernel-blk-queue.m4
+++ b/config/kernel-blk-queue.m4
@@ -74,6 +74,8 @@ AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_UPDATE_READAHEAD], [
AC_DEFINE(HAVE_BLK_QUEUE_UPDATE_READAHEAD, 1,
[blk_queue_update_readahead() exists])
],[
+ AC_MSG_RESULT(no)
+
AC_MSG_CHECKING([whether disk_update_readahead() exists])
ZFS_LINUX_TEST_RESULT([disk_update_readahead], [
AC_MSG_RESULT(yes)
@@ -86,10 +88,19 @@ AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_UPDATE_READAHEAD], [
])
dnl #
-dnl # 2.6.32 API,
-dnl # blk_queue_discard()
+dnl # 5.19: bdev_max_discard_sectors() available
+dnl # 2.6.32: blk_queue_discard() available
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_BLK_QUEUE_DISCARD], [
+ ZFS_LINUX_TEST_SRC([bdev_max_discard_sectors], [
+ #include <linux/blkdev.h>
+ ],[
+ struct block_device *bdev __attribute__ ((unused)) = NULL;
+ unsigned int error __attribute__ ((unused));
+
+ error = bdev_max_discard_sectors(bdev);
+ ])
+
ZFS_LINUX_TEST_SRC([blk_queue_discard], [
#include <linux/blkdev.h>
],[
@@ -102,11 +113,22 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_BLK_QUEUE_DISCARD], [
])
AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_DISCARD], [
- AC_MSG_CHECKING([whether blk_queue_discard() is available])
- ZFS_LINUX_TEST_RESULT([blk_queue_discard], [
+ AC_MSG_CHECKING([whether bdev_max_discard_sectors() is available])
+ ZFS_LINUX_TEST_RESULT([bdev_max_discard_sectors], [
AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BDEV_MAX_DISCARD_SECTORS, 1,
+ [bdev_max_discard_sectors() is available])
],[
- ZFS_LINUX_TEST_ERROR([blk_queue_discard])
+ AC_MSG_RESULT(no)
+
+ AC_MSG_CHECKING([whether blk_queue_discard() is available])
+ ZFS_LINUX_TEST_RESULT([blk_queue_discard], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BLK_QUEUE_DISCARD, 1,
+ [blk_queue_discard() is available])
+ ],[
+ ZFS_LINUX_TEST_ERROR([blk_queue_discard])
+ ])
])
])