static int afs_rename(struct user_namespace *mnt_userns, struct inode *old_dir,
                      struct dentry *old_dentry, struct inode *new_dir,
                      struct dentry *new_dentry, unsigned int flags);
-static int afs_dir_releasepage(struct page *page, gfp_t gfp_flags);
+static bool afs_dir_release_folio(struct folio *folio, gfp_t gfp_flags);
 static void afs_dir_invalidate_folio(struct folio *folio, size_t offset,
                                   size_t length);
 
 
 const struct address_space_operations afs_dir_aops = {
        .dirty_folio    = afs_dir_dirty_folio,
-       .releasepage    = afs_dir_releasepage,
+       .release_folio  = afs_dir_release_folio,
        .invalidate_folio = afs_dir_invalidate_folio,
 };
 
  * Release a directory folio and clean up its private state if it's not busy
  * - return true if the folio can now be released, false if not
  */
-static int afs_dir_releasepage(struct page *subpage, gfp_t gfp_flags)
+static bool afs_dir_release_folio(struct folio *folio, gfp_t gfp_flags)
 {
-       struct folio *folio = page_folio(subpage);
        struct afs_vnode *dvnode = AFS_FS_I(folio_inode(folio));
 
        _enter("{{%llx:%llu}[%lu]}", dvnode->fid.vid, dvnode->fid.vnode, folio_index(folio));
 
 static int afs_symlink_read_folio(struct file *file, struct folio *folio);
 static void afs_invalidate_folio(struct folio *folio, size_t offset,
                               size_t length);
-static int afs_releasepage(struct page *page, gfp_t gfp_flags);
+static bool afs_release_folio(struct folio *folio, gfp_t gfp_flags);
 
 static ssize_t afs_file_read_iter(struct kiocb *iocb, struct iov_iter *iter);
 static void afs_vm_open(struct vm_area_struct *area);
        .readahead      = netfs_readahead,
        .dirty_folio    = afs_dirty_folio,
        .launder_folio  = afs_launder_folio,
-       .releasepage    = afs_releasepage,
+       .release_folio  = afs_release_folio,
        .invalidate_folio = afs_invalidate_folio,
        .write_begin    = afs_write_begin,
        .write_end      = afs_write_end,
 
 const struct address_space_operations afs_symlink_aops = {
        .read_folio     = afs_symlink_read_folio,
-       .releasepage    = afs_releasepage,
+       .release_folio  = afs_release_folio,
        .invalidate_folio = afs_invalidate_folio,
 };
 
  * release a page and clean up its private state if it's not busy
  * - return true if the page can now be released, false if not
  */
-static int afs_releasepage(struct page *page, gfp_t gfp)
+static bool afs_release_folio(struct folio *folio, gfp_t gfp)
 {
-       struct folio *folio = page_folio(page);
        struct afs_vnode *vnode = AFS_FS_I(folio_inode(folio));
 
        _enter("{{%llx:%llu}[%lu],%lx},%x",
               vnode->fid.vid, vnode->fid.vnode, folio_index(folio), folio->flags,
               gfp);
 
-       /* deny if page is being written to the cache and the caller hasn't
+       /* deny if folio is being written to the cache and the caller hasn't
         * elected to wait */
 #ifdef CONFIG_AFS_FSCACHE
        if (folio_test_fscache(folio)) {
 
        atomic_t                n_lookup;       /* Number of lookups done */
        atomic_t                n_reval;        /* Number of dentries needing revalidation */
        atomic_t                n_inval;        /* Number of invalidations by the server */
-       atomic_t                n_relpg;        /* Number of invalidations by releasepage */
+       atomic_t                n_relpg;        /* Number of invalidations by release_folio */
        atomic_t                n_read_dir;     /* Number of directory pages read */
        atomic_t                n_dir_cr;       /* Number of directory entry creation edits */
        atomic_t                n_dir_rm;       /* Number of directory entry removal edits */