]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Linux 5.10 compat: revalidate_disk_size() added
authorColeman Kane <ckane@colemankane.org>
Sun, 18 Oct 2020 17:06:18 +0000 (13:06 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 3 Nov 2020 17:51:31 +0000 (09:51 -0800)
A new function was added named revalidate_disk_size() and the old
revalidate_disk() appears to have been deprecated. As the only ZFS
code that calls this function is zvol_update_volsize, swapping the
old function call out for the new one should be all that is required.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #11085

config/kernel-revalidate-disk-size.m4 [new file with mode: 0644]
config/kernel.m4
module/os/linux/zfs/zvol_os.c

diff --git a/config/kernel-revalidate-disk-size.m4 b/config/kernel-revalidate-disk-size.m4
new file mode 100644 (file)
index 0000000..de1146c
--- /dev/null
@@ -0,0 +1,24 @@
+dnl #
+dnl # 5.10 API change
+dnl # revalidate_disk() was replaced by revalidate_disk_size()
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_SRC_REVALIDATE_DISK_SIZE], [
+       ZFS_LINUX_TEST_SRC([revalidate_disk_size], [
+               #include <linux/genhd.h>
+       ], [
+               struct gendisk *disk = NULL;
+               (void) revalidate_disk_size(disk, false);
+       ])
+])
+
+AC_DEFUN([ZFS_AC_KERNEL_REVALIDATE_DISK_SIZE], [
+       AC_MSG_CHECKING([whether revalidate_disk_size() is available])
+       ZFS_LINUX_TEST_RESULT_SYMBOL([revalidate_disk_size],
+               [revalidate_disk_size], [block/genhd.c], [
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_REVALIDATE_DISK_SIZE, 1,
+                       [revalidate_disk_size() is available])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+])
index bbfbeb39b8006e100f5520331fb3e980c6251ac9..3e01daa5e5f97695c12ba2b7c3e4b700f51dde64 100644 (file)
@@ -62,6 +62,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
        ZFS_AC_KERNEL_SRC_BLKDEV
        ZFS_AC_KERNEL_SRC_BLK_QUEUE
        ZFS_AC_KERNEL_SRC_GET_DISK_AND_MODULE
+       ZFS_AC_KERNEL_SRC_REVALIDATE_DISK_SIZE
        ZFS_AC_KERNEL_SRC_GET_DISK_RO
        ZFS_AC_KERNEL_SRC_GENERIC_READLINK_GLOBAL
        ZFS_AC_KERNEL_SRC_DISCARD_GRANULARITY
@@ -158,6 +159,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
        ZFS_AC_KERNEL_BLKDEV
        ZFS_AC_KERNEL_BLK_QUEUE
        ZFS_AC_KERNEL_GET_DISK_AND_MODULE
+       ZFS_AC_KERNEL_REVALIDATE_DISK_SIZE
        ZFS_AC_KERNEL_GET_DISK_RO
        ZFS_AC_KERNEL_GENERIC_READLINK_GLOBAL
        ZFS_AC_KERNEL_DISCARD_GRANULARITY
index a29842ecdac82f43cae5ac0a1f903f859e035fc2..6dfbdf708ec2de7765ea55e848f3d79bcbf436e4 100644 (file)
@@ -657,7 +657,11 @@ static int
 zvol_update_volsize(zvol_state_t *zv, uint64_t volsize)
 {
 
+#ifdef HAVE_REVALIDATE_DISK_SIZE
+       revalidate_disk_size(zv->zv_zso->zvo_disk, false);
+#else
        revalidate_disk(zv->zv_zso->zvo_disk);
+#endif
        return (0);
 }