shmem: add shmem_get_folio()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 2 Sep 2022 19:46:20 +0000 (20:46 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 3 Oct 2022 21:02:49 +0000 (14:02 -0700)
With no remaining callers of shmem_getpage_gfp(), add shmem_get_folio()
and reimplement shmem_getpage() as a call to shmem_get_folio().

Link: https://lkml.kernel.org/r/20220902194653.1739778-25-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/shmem_fs.h
mm/shmem.c

index ff0b990de83d457c162d1789745e2040e0df9efb..f4bd50b08a915ae7454636965be5dc56c699af4d 100644 (file)
@@ -113,6 +113,8 @@ enum sgp_type {
 
 extern int shmem_getpage(struct inode *inode, pgoff_t index,
                struct page **pagep, enum sgp_type sgp);
+int shmem_get_folio(struct inode *inode, pgoff_t index, struct folio **foliop,
+               enum sgp_type sgp);
 
 static inline struct page *shmem_read_mapping_page(
                                struct address_space *mapping, pgoff_t index)
index c3e2a65a65fc2fb61dd1ce223910b564eb478255..32afc8039e6601234649b893b8cae066336b276d 100644 (file)
@@ -2025,14 +2025,18 @@ unlock:
        return error;
 }
 
-static int shmem_getpage_gfp(struct inode *inode, pgoff_t index,
-               struct page **pagep, enum sgp_type sgp,
-               gfp_t gfp, struct vm_area_struct *vma,
-               struct vm_fault *vmf, vm_fault_t *fault_type)
+int shmem_get_folio(struct inode *inode, pgoff_t index, struct folio **foliop,
+               enum sgp_type sgp)
+{
+       return shmem_get_folio_gfp(inode, index, foliop, sgp,
+                       mapping_gfp_mask(inode->i_mapping), NULL, NULL, NULL);
+}
+
+int shmem_getpage(struct inode *inode, pgoff_t index,
+               struct page **pagep, enum sgp_type sgp)
 {
        struct folio *folio = NULL;
-       int ret = shmem_get_folio_gfp(inode, index, &folio, sgp, gfp, vma,
-                       vmf, fault_type);
+       int ret = shmem_get_folio(inode, index, &folio, sgp);
 
        if (folio)
                *pagep = folio_file_page(folio, index);
@@ -2041,13 +2045,6 @@ static int shmem_getpage_gfp(struct inode *inode, pgoff_t index,
        return ret;
 }
 
-int shmem_getpage(struct inode *inode, pgoff_t index,
-               struct page **pagep, enum sgp_type sgp)
-{
-       return shmem_getpage_gfp(inode, index, pagep, sgp,
-               mapping_gfp_mask(inode->i_mapping), NULL, NULL, NULL);
-}
-
 /*
  * This is like autoremove_wake_function, but it removes the wait queue
  * entry unconditionally - even if something else had already woken the