/**
  * ecryptfs_decrypt_page
- * @page: Page mapped from the eCryptfs inode for the file; data read
+ * @folio: Folio mapped from the eCryptfs inode for the file; data read
  *        and decrypted from the lower file will be written into this
  *        page
  *
  *
  * Returns zero on success; negative on error
  */
-int ecryptfs_decrypt_page(struct page *page)
+int ecryptfs_decrypt_page(struct folio *folio)
 {
        struct inode *ecryptfs_inode;
        struct ecryptfs_crypt_stat *crypt_stat;
        loff_t lower_offset;
        int rc = 0;
 
-       ecryptfs_inode = page->mapping->host;
+       ecryptfs_inode = folio->mapping->host;
        crypt_stat =
                &(ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat);
        BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED));
 
-       lower_offset = lower_offset_for_page(crypt_stat, page);
-       page_virt = kmap_local_page(page);
+       lower_offset = lower_offset_for_page(crypt_stat, &folio->page);
+       page_virt = kmap_local_folio(folio, 0);
        rc = ecryptfs_read_lower(page_virt, lower_offset, PAGE_SIZE,
                                 ecryptfs_inode);
        kunmap_local(page_virt);
        for (extent_offset = 0;
             extent_offset < (PAGE_SIZE / crypt_stat->extent_size);
             extent_offset++) {
+               struct page *page = folio_page(folio, 0);
                rc = crypt_extent(crypt_stat, page, page,
                                  extent_offset, DECRYPT);
                if (rc) {
 
 int ecryptfs_init_crypt_ctx(struct ecryptfs_crypt_stat *crypt_stat);
 int ecryptfs_write_inode_size_to_metadata(struct inode *ecryptfs_inode);
 int ecryptfs_encrypt_page(struct folio *folio);
-int ecryptfs_decrypt_page(struct page *page);
+int ecryptfs_decrypt_page(struct folio *folio);
 int ecryptfs_write_metadata(struct dentry *ecryptfs_dentry,
                            struct inode *ecryptfs_inode);
 int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry);
 
                        }
                }
        } else {
-               err = ecryptfs_decrypt_page(&folio->page);
+               err = ecryptfs_decrypt_page(folio);
                if (err) {
                        ecryptfs_printk(KERN_ERR, "Error decrypting page; "
                                        "err = [%d]\n", err);
                                folio_zero_range(folio, 0, PAGE_SIZE);
                                folio_mark_uptodate(folio);
                        } else if (len < PAGE_SIZE) {
-                               rc = ecryptfs_decrypt_page(&folio->page);
+                               rc = ecryptfs_decrypt_page(folio);
                                if (rc) {
                                        printk(KERN_ERR "%s: Error decrypting "
                                               "page at index [%ld]; "