}
 
                if (!test_bit(NETFS_RREQ_DONT_UNLOCK_FOLIOS, &rreq->flags)) {
-                       if (folio_index(folio) == rreq->no_unlock_folio &&
+                       if (folio->index == rreq->no_unlock_folio &&
                            test_bit(NETFS_RREQ_NO_UNLOCK_FOLIO, &rreq->flags))
                                _debug("no unlock");
                        else
  */
 int netfs_read_folio(struct file *file, struct folio *folio)
 {
-       struct address_space *mapping = folio_file_mapping(folio);
+       struct address_space *mapping = folio->mapping;
        struct netfs_io_request *rreq;
        struct netfs_inode *ctx = netfs_inode(mapping->host);
        struct folio *sink = NULL;
        int ret;
 
-       _enter("%lx", folio_index(folio));
+       _enter("%lx", folio->index);
 
        rreq = netfs_alloc_request(mapping, file,
                                   folio_file_pos(folio), folio_size(folio),
                ret = PTR_ERR(rreq);
                goto error;
        }
-       rreq->no_unlock_folio   = folio_index(folio);
+       rreq->no_unlock_folio   = folio->index;
        __set_bit(NETFS_RREQ_NO_UNLOCK_FOLIO, &rreq->flags);
 
        ret = netfs_begin_cache_read(rreq, ctx);
                             size_t offset, size_t len)
 {
        struct netfs_io_request *rreq;
-       struct address_space *mapping = folio_file_mapping(folio);
+       struct address_space *mapping = folio->mapping;
        struct netfs_inode *ctx = netfs_inode(mapping->host);
        unsigned long long start = folio_pos(folio);
        size_t flen = folio_size(folio);
                goto error;
        }
 
-       rreq->no_unlock_folio = folio_index(folio);
+       rreq->no_unlock_folio = folio->index;
        __set_bit(NETFS_RREQ_NO_UNLOCK_FOLIO, &rreq->flags);
        ret = netfs_begin_cache_read(rreq, ctx);
        if (ret == -ENOMEM || ret == -EINTR || ret == -ERESTARTSYS)
 
                        break;
                default:
                        WARN(true, "Unexpected modify type %u ix=%lx\n",
-                            howto, folio_index(folio));
+                            howto, folio->index);
                        ret = -EIO;
                        goto error_folio_unlock;
                }
        xas_for_each(&xas, folio, last) {
                WARN(!folio_test_writeback(folio),
                     "bad %zx @%llx page %lx %lx\n",
-                    wreq->len, wreq->start, folio_index(folio), last);
+                    wreq->len, wreq->start, folio->index, last);
 
                if ((finfo = netfs_folio_info(folio))) {
                        /* Streaming writes cannot be redirtied whilst under
                                continue;
                        if (xa_is_value(folio))
                                break;
-                       if (folio_index(folio) != index) {
+                       if (folio->index != index) {
                                xas_reset(xas);
                                break;
                        }
        long count = wbc->nr_to_write;
        int ret;
 
-       _enter(",%lx,%llx-%llx,%u", folio_index(folio), start, end, caching);
+       _enter(",%lx,%llx-%llx,%u", folio->index, start, end, caching);
 
        wreq = netfs_alloc_request(mapping, NULL, start, folio_size(folio),
                                   NETFS_WRITEBACK);
 
        start = folio_pos(folio); /* May regress with THPs */
 
-       _debug("wback %lx", folio_index(folio));
+       _debug("wback %lx", folio->index);
 
        /* At this point we hold neither the i_pages lock nor the page lock:
         * the page may be truncated or invalidated (changing page->mapping to
 
                        /* We might have multiple writes from the same huge
                         * folio, but we mustn't unlock a folio more than once.
                         */
-                       if (have_unlocked && folio_index(folio) <= unlocked)
+                       if (have_unlocked && folio->index <= unlocked)
                                continue;
                        unlocked = folio_next_index(folio) - 1;
                        trace_netfs_folio(folio, netfs_folio_trace_end_copy);
 
        struct netfs_folio *finfo = NULL;
        size_t flen = folio_size(folio);
 
-       _enter("{%lx},%zx,%zx", folio_index(folio), offset, length);
+       _enter("{%lx},%zx,%zx", folio->index, offset, length);
 
        folio_wait_fscache(folio);