summaryrefslogtreecommitdiffstats
path: root/kernel/events
diff options
context:
space:
mode:
authorMatthew Wilcox (Oracle) <willy@infradead.org>2022-04-29 14:43:23 +0200
committerMatthew Wilcox (Oracle) <willy@infradead.org>2022-05-09 22:21:40 +0200
commit5efe7448a1426250b5747c10ad438517f44f1e51 (patch)
treeafe256df7b4de7af6d60304322efa36813f2016c /kernel/events
parentbuffer: Rewrite nobh_truncate_page() to use folios (diff)
downloadlinux-5efe7448a1426250b5747c10ad438517f44f1e51.tar.xz
linux-5efe7448a1426250b5747c10ad438517f44f1e51.zip
fs: Introduce aops->read_folio
Change all the callers of ->readpage to call ->read_folio in preference, if it exists. This is a transitional duplication, and will be removed by the end of the series. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Diffstat (limited to 'kernel/events')
-rw-r--r--kernel/events/uprobes.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 6418083901d4..2c7815d20038 100644
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -790,7 +790,7 @@ static int __copy_insn(struct address_space *mapping, struct file *filp,
* and in page-cache. If ->readpage == NULL it must be shmem_mapping(),
* see uprobe_register().
*/
- if (mapping->a_ops->readpage)
+ if (mapping->a_ops->read_folio || mapping->a_ops->readpage)
page = read_mapping_page(mapping, offset >> PAGE_SHIFT, filp);
else
page = shmem_read_mapping_page(mapping, offset >> PAGE_SHIFT);
@@ -1143,7 +1143,9 @@ static int __uprobe_register(struct inode *inode, loff_t offset,
return -EINVAL;
/* copy_insn() uses read_mapping_page() or shmem_read_mapping_page() */
- if (!inode->i_mapping->a_ops->readpage && !shmem_mapping(inode->i_mapping))
+ if (!inode->i_mapping->a_ops->read_folio &&
+ !inode->i_mapping->a_ops->readpage &&
+ !shmem_mapping(inode->i_mapping))
return -EIO;
/* Racy, just to catch the obvious mistakes */
if (offset > i_size_read(inode))