aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2022-05-27 20:44:43 +0000
committerBrian Behlendorf <[email protected]>2022-05-31 12:04:31 -0700
commitc2c2e7bb8b7c269904777b61f4b0a678f1ffb9a3 (patch)
tree345363037a2ffebcdb4cc0d4b2aeda9f2cbd7199 /config
parenta12a5cb5b821f24f26d388094cdac79deb0e879f (diff)
Linux 5.19 compat: aops->read_folio()
As of the Linux 5.19 kernel the readpage() address space operation has been replaced by read_folio(). Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #13515
Diffstat (limited to 'config')
-rw-r--r--config/kernel-vfs-read_folio.m432
-rw-r--r--config/kernel.m42
2 files changed, 34 insertions, 0 deletions
diff --git a/config/kernel-vfs-read_folio.m4 b/config/kernel-vfs-read_folio.m4
new file mode 100644
index 000000000..234d1212a
--- /dev/null
+++ b/config/kernel-vfs-read_folio.m4
@@ -0,0 +1,32 @@
+dnl #
+dnl # Linux 5.19 uses read_folio in lieu of readpage
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_READ_FOLIO], [
+ ZFS_LINUX_TEST_SRC([vfs_has_read_folio], [
+ #include <linux/fs.h>
+
+ static int
+ test_read_folio(struct file *file, struct folio *folio) {
+ (void) file; (void) folio;
+ return (0);
+ }
+
+ static const struct address_space_operations
+ aops __attribute__ ((unused)) = {
+ .read_folio = test_read_folio,
+ };
+ ],[])
+])
+
+AC_DEFUN([ZFS_AC_KERNEL_VFS_READ_FOLIO], [
+ dnl #
+ dnl # Linux 5.19 uses read_folio in lieu of readpage
+ dnl #
+ AC_MSG_CHECKING([read_folio exists])
+ ZFS_LINUX_TEST_RESULT([vfs_has_read_folio], [
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_VFS_READ_FOLIO, 1, [read_folio exists])
+ ],[
+ AC_MSG_RESULT([no])
+ ])
+])
diff --git a/config/kernel.m4 b/config/kernel.m4
index a70db91a8..eba3c0669 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -102,6 +102,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
ZFS_AC_KERNEL_SRC_SGET
ZFS_AC_KERNEL_SRC_LSEEK_EXECUTE
ZFS_AC_KERNEL_SRC_VFS_FILEMAP_DIRTY_FOLIO
+ ZFS_AC_KERNEL_SRC_VFS_READ_FOLIO
ZFS_AC_KERNEL_SRC_VFS_GETATTR
ZFS_AC_KERNEL_SRC_VFS_FSYNC_2ARGS
ZFS_AC_KERNEL_SRC_VFS_ITERATE
@@ -219,6 +220,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
ZFS_AC_KERNEL_SGET
ZFS_AC_KERNEL_LSEEK_EXECUTE
ZFS_AC_KERNEL_VFS_FILEMAP_DIRTY_FOLIO
+ ZFS_AC_KERNEL_VFS_READ_FOLIO
ZFS_AC_KERNEL_VFS_GETATTR
ZFS_AC_KERNEL_VFS_FSYNC_2ARGS
ZFS_AC_KERNEL_VFS_ITERATE