mirror of
https://github.com/openzfs/zfs.git
synced 2025-10-01 02:46:29 +00:00

Kernel 5.10 removed check_disk_change() in favor of callers using the faster bdev_check_media_change() instead, and explicitly forcing bdev revalidation when they desire that behavior. To preserve prior behavior, I have wrapped this into a zfs_check_media_change() macro that calls an inline function for the new API that mimics the old behavior when check_disk_change() doesn't exist, and just calls check_disk_change() if it exists. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Coleman Kane <ckane@colemankane.org> Closes #11085
63 lines
1.5 KiB
Plaintext
63 lines
1.5 KiB
Plaintext
dnl #
|
|
dnl # check_disk_change() was removed in 5.10
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV_CHECK_DISK_CHANGE], [
|
|
ZFS_LINUX_TEST_SRC([check_disk_change], [
|
|
#include <linux/fs.h>
|
|
#include <linux/blkdev.h>
|
|
], [
|
|
struct block_device *bdev = NULL;
|
|
bool error;
|
|
|
|
error = check_disk_change(bdev);
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_CHECK_DISK_CHANGE], [
|
|
AC_MSG_CHECKING([whether check_disk_change() exists])
|
|
ZFS_LINUX_TEST_RESULT([check_disk_change], [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_CHECK_DISK_CHANGE, 1,
|
|
[check_disk_change() exists])
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
|
|
dnl #
|
|
dnl # 5.10 API, check_disk_change() is removed, in favor of
|
|
dnl # bdev_check_media_change(), which doesn't force revalidation
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_CHECK_MEDIA_CHANGE], [
|
|
ZFS_LINUX_TEST_SRC([bdev_check_media_change], [
|
|
#include <linux/fs.h>
|
|
#include <linux/blkdev.h>
|
|
], [
|
|
struct block_device *bdev = NULL;
|
|
int error;
|
|
|
|
error = bdev_check_media_change(bdev);
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_BDEV_CHECK_MEDIA_CHANGE], [
|
|
AC_MSG_CHECKING([whether bdev_disk_changed() exists])
|
|
ZFS_LINUX_TEST_RESULT([bdev_check_media_change], [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_BDEV_CHECK_MEDIA_CHANGE, 1,
|
|
[bdev_check_media_change() exists])
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV_CHANGE], [
|
|
ZFS_AC_KERNEL_SRC_BLKDEV_CHECK_DISK_CHANGE
|
|
ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_CHECK_MEDIA_CHANGE
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_CHANGE], [
|
|
ZFS_AC_KERNEL_BLKDEV_CHECK_DISK_CHANGE
|
|
ZFS_AC_KERNEL_BLKDEV_BDEV_CHECK_MEDIA_CHANGE
|
|
])
|