summarylogtreecommitdiffstats
path: root/0004-Linux-5.19-Rename-aops-readpage-to-read_folio.patch
diff options
context:
space:
mode:
Diffstat (limited to '0004-Linux-5.19-Rename-aops-readpage-to-read_folio.patch')
-rw-r--r--0004-Linux-5.19-Rename-aops-readpage-to-read_folio.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/0004-Linux-5.19-Rename-aops-readpage-to-read_folio.patch b/0004-Linux-5.19-Rename-aops-readpage-to-read_folio.patch
deleted file mode 100644
index 1e473316ab3d..000000000000
--- a/0004-Linux-5.19-Rename-aops-readpage-to-read_folio.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From f7d5510aa486caeb69c688099bfba77609d82ed5 Mon Sep 17 00:00:00 2001
-From: Cheyenne Wills <cwills@sinenomine.net>
-Date: Tue, 5 Jul 2022 11:45:29 -0600
-Subject: [PATCH 4/6] Linux-5.19: Rename aops readpage to read_folio
-
-With Linux commits:
- mm,fs: Remove aops->readpage (7e0a126519)
- fs: Introduce aops->read_folio (5efe7448a1)
-
-the address space operations method 'readpage' was replaced with
-read_folio. The operation behaves the same, except instead of taking a
-struct page parameter, the new function takes a folio structure.
-
-Add an autoconf test for the address space operation entry read_folio
-
-Replace the references to an address space operations' readpage with
-read_folio. Note that the function Linux page_folio can be used to
-obtain the required pointer to the folio for a given page.
-
-Introduce afs_linux_read_folio that accepts a folio and calls
-afs_linux_readpage with the page associated with that folio.
-
-Change-Id: I2c43a9bfb26042f7cc2c55807d46b33769f2594a
-Reviewed-on: https://gerrit.openafs.org/15040
-Reviewed-by: Andrew Deason <adeason@sinenomine.net>
-Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
-Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-(cherry picked from commit bfb852197edcbe0c38c499faecd7c1be23308a20)
----
- src/afs/LINUX/osi_vnodeops.c | 36 +++++++++++++++++++++++++++++++++++
- src/cf/linux-kernel-struct.m4 | 2 ++
- 2 files changed, 38 insertions(+)
-
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index b834a405c..04f13a1b1 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -2215,7 +2215,11 @@ afs_linux_put_link(struct dentry *dentry, struct nameidata *nd)
- static int
- mapping_read_page(struct address_space *mapping, struct page *page)
- {
-+#if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO)
-+ return mapping->a_ops->read_folio(NULL, page_folio(page));
-+#else
- return mapping->a_ops->readpage(NULL, page);
-+#endif
- }
-
- /* Populate a page by filling it from the cache file pointed at by cachefp
-@@ -2326,8 +2330,13 @@ afs_linux_read_cache(struct file *cachefp, struct page *page,
- static int inline
- file_can_read_pages(struct file *fp)
- {
-+#if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO)
-+ if (fp->f_dentry->d_inode->i_mapping->a_ops->read_folio != NULL)
-+ return 1;
-+#else
- if (fp->f_dentry->d_inode->i_mapping->a_ops->readpage != NULL)
- return 1;
-+#endif
- return 0;
- }
-
-@@ -2849,6 +2858,16 @@ afs_linux_readpage(struct file *fp, struct page *pp)
- return code;
- }
-
-+#if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO)
-+static int
-+afs_linux_read_folio(struct file *fp, struct folio *folio)
-+{
-+ struct page *pp = &folio->page;
-+
-+ return afs_linux_readpage(fp, pp);
-+}
-+#endif
-+
- /*
- * Updates the adc and acacheFp parameters
- * Returns:
-@@ -3536,7 +3555,11 @@ static struct inode_operations afs_file_iops = {
- };
-
- static struct address_space_operations afs_file_aops = {
-+#if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO)
-+ .read_folio = afs_linux_read_folio,
-+#else
- .readpage = afs_linux_readpage,
-+#endif
- #if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READAHEAD)
- .readahead = afs_linux_readahead,
- #else
-@@ -3609,9 +3632,22 @@ afs_symlink_filler(struct file *file, struct page *page)
- unlock_page(page);
- return code;
- }
-+#if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO)
-+static int
-+afs_symlink_filler_folio(struct file *file, struct folio *folio)
-+{
-+ struct page *page = &folio->page;
-+ return afs_symlink_filler(file, page);
-+}
-+#endif
-+
-
- static struct address_space_operations afs_symlink_aops = {
-+#if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO)
-+ .read_folio = afs_symlink_filler_folio
-+#else
- .readpage = afs_symlink_filler
-+#endif
- };
- #endif /* USABLE_KERNEL_PAGE_SYMLINK_CACHE */
-
-diff --git a/src/cf/linux-kernel-struct.m4 b/src/cf/linux-kernel-struct.m4
-index 597289bc8..3d4b10b13 100644
---- a/src/cf/linux-kernel-struct.m4
-+++ b/src/cf/linux-kernel-struct.m4
-@@ -7,6 +7,8 @@ dnl linux 5.18 replaced set_page_dirty with dirty_folio
- AC_CHECK_LINUX_STRUCT([address_space_operations], [dirty_folio], [fs.h])
- dnl linux 5.18 replaced readpages with readahead (introduced in 5.8)
- AC_CHECK_LINUX_STRUCT([address_space_operations], [readahead], [fs.h])
-+dnl linux 5.18 replaced readpage with read_folio
-+AC_CHECK_LINUX_STRUCT([address_space_operations], [read_folio], [fs.h])
- AC_CHECK_LINUX_STRUCT([backing_dev_info], [name],
- [backing-dev.h])
- AC_CHECK_LINUX_STRUCT([cred], [session_keyring], [cred.h])
---
-2.37.1
-