Merge tag 'tag-chrome-platform-for-v5.19' of git://git.kernel.org/pub/scm/linux/kerne...
[linux-2.6-microblaze.git] / fs / afs / file.c
index 26292a1..a8e8832 100644 (file)
 #include "internal.h"
 
 static int afs_file_mmap(struct file *file, struct vm_area_struct *vma);
-static int afs_symlink_readpage(struct file *file, struct page *page);
+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);
@@ -50,11 +50,11 @@ const struct inode_operations afs_file_inode_operations = {
 };
 
 const struct address_space_operations afs_file_aops = {
-       .readpage       = netfs_readpage,
+       .read_folio     = netfs_read_folio,
        .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,
@@ -63,8 +63,8 @@ const struct address_space_operations afs_file_aops = {
 };
 
 const struct address_space_operations afs_symlink_aops = {
-       .readpage       = afs_symlink_readpage,
-       .releasepage    = afs_releasepage,
+       .read_folio     = afs_symlink_read_folio,
+       .release_folio  = afs_release_folio,
        .invalidate_folio = afs_invalidate_folio,
 };
 
@@ -332,11 +332,10 @@ static void afs_issue_read(struct netfs_io_subrequest *subreq)
        afs_put_read(fsreq);
 }
 
-static int afs_symlink_readpage(struct file *file, struct page *page)
+static int afs_symlink_read_folio(struct file *file, struct folio *folio)
 {
-       struct afs_vnode *vnode = AFS_FS_I(page->mapping->host);
+       struct afs_vnode *vnode = AFS_FS_I(folio->mapping->host);
        struct afs_read *fsreq;
-       struct folio *folio = page_folio(page);
        int ret;
 
        fsreq = afs_alloc_read(GFP_NOFS);
@@ -347,13 +346,13 @@ static int afs_symlink_readpage(struct file *file, struct page *page)
        fsreq->len      = folio_size(folio);
        fsreq->vnode    = vnode;
        fsreq->iter     = &fsreq->def_iter;
-       iov_iter_xarray(&fsreq->def_iter, READ, &page->mapping->i_pages,
+       iov_iter_xarray(&fsreq->def_iter, READ, &folio->mapping->i_pages,
                        fsreq->pos, fsreq->len);
 
        ret = afs_fetch_data(fsreq->vnode, fsreq);
        if (ret == 0)
-               SetPageUptodate(page);
-       unlock_page(page);
+               folio_mark_uptodate(folio);
+       folio_unlock(folio);
        return ret;
 }
 
@@ -482,16 +481,15 @@ static void afs_invalidate_folio(struct folio *folio, size_t offset,
  * 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)) {