From 48c7b0e444591ca5e0199e266e79ecff53e81ee6 Mon Sep 17 00:00:00 2001 From: Coleman Kane Date: Tue, 11 May 2021 22:53:02 -0400 Subject: linux 5.13 compat: bdevops->revalidate_disk() removed Linux kernel commit 0f00b82e5413571ed225ddbccad6882d7ea60bc7 removes the revalidate_disk() handler from struct block_device_operations. This caused a regression, and this commit eliminates the call to it and the assignment in the block_device_operations static handler assignment code, when configure identifies that the kernel doesn't support that API handler. Reviewed-by: Colin Ian King Reviewed-by: Brian Behlendorf Signed-off-by: Coleman Kane Closes #11967 Closes #11977 --- include/os/linux/kernel/linux/blkdev_compat.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/os') diff --git a/include/os/linux/kernel/linux/blkdev_compat.h b/include/os/linux/kernel/linux/blkdev_compat.h index fe809176f..14cae3563 100644 --- a/include/os/linux/kernel/linux/blkdev_compat.h +++ b/include/os/linux/kernel/linux/blkdev_compat.h @@ -277,18 +277,22 @@ bio_set_bi_error(struct bio *bio, int error) static inline int zfs_check_media_change(struct block_device *bdev) { +#ifdef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK struct gendisk *gd = bdev->bd_disk; const struct block_device_operations *bdo = gd->fops; +#endif if (!bdev_check_media_change(bdev)) return (0); +#ifdef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK /* * Force revalidation, to mimic the old behavior of * check_disk_change() */ if (bdo->revalidate_disk) bdo->revalidate_disk(gd); +#endif return (0); } -- cgit v1.2.3