DECLARE_EVENT_CLASS(mm_filemap_op_page_cache,
 
-       TP_PROTO(struct page *page),
+       TP_PROTO(struct folio *folio),
 
-       TP_ARGS(page),
+       TP_ARGS(folio),
 
        TP_STRUCT__entry(
                __field(unsigned long, pfn)
                __field(unsigned long, i_ino)
                __field(unsigned long, index)
                __field(dev_t, s_dev)
+               __field(unsigned char, order)
        ),
 
        TP_fast_assign(
-               __entry->pfn = page_to_pfn(page);
-               __entry->i_ino = page->mapping->host->i_ino;
-               __entry->index = page->index;
-               if (page->mapping->host->i_sb)
-                       __entry->s_dev = page->mapping->host->i_sb->s_dev;
+               __entry->pfn = folio_pfn(folio);
+               __entry->i_ino = folio->mapping->host->i_ino;
+               __entry->index = folio->index;
+               if (folio->mapping->host->i_sb)
+                       __entry->s_dev = folio->mapping->host->i_sb->s_dev;
                else
-                       __entry->s_dev = page->mapping->host->i_rdev;
+                       __entry->s_dev = folio->mapping->host->i_rdev;
+               __entry->order = folio_order(folio);
        ),
 
-       TP_printk("dev %d:%d ino %lx page=%p pfn=0x%lx ofs=%lu",
+       TP_printk("dev %d:%d ino %lx pfn=0x%lx ofs=%lu order=%u",
                MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
                __entry->i_ino,
-               pfn_to_page(__entry->pfn),
                __entry->pfn,
-               __entry->index << PAGE_SHIFT)
+               __entry->index << PAGE_SHIFT,
+               __entry->order)
 );
 
 DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_delete_from_page_cache,
-       TP_PROTO(struct page *page),
-       TP_ARGS(page)
+       TP_PROTO(struct folio *folio),
+       TP_ARGS(folio)
        );
 
 DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_add_to_page_cache,
-       TP_PROTO(struct page *page),
-       TP_ARGS(page)
+       TP_PROTO(struct folio *folio),
+       TP_ARGS(folio)
        );
 
 TRACE_EVENT(filemap_set_wb_err,
 
        struct folio *folio = page_folio(page);
        struct address_space *mapping = page->mapping;
 
-       trace_mm_filemap_delete_from_page_cache(page);
+       trace_mm_filemap_delete_from_page_cache(folio);
 
        filemap_unaccount_folio(mapping, folio);
        page_cache_delete(mapping, folio, shadow);
        spin_lock(&mapping->host->i_lock);
        xa_lock_irq(&mapping->i_pages);
        for (i = 0; i < pagevec_count(pvec); i++) {
-               trace_mm_filemap_delete_from_page_cache(pvec->pages[i]);
+               struct folio *folio = page_folio(pvec->pages[i]);
 
-               filemap_unaccount_folio(mapping, page_folio(pvec->pages[i]));
+               trace_mm_filemap_delete_from_page_cache(folio);
+               filemap_unaccount_folio(mapping, folio);
        }
        page_cache_delete_batch(mapping, pvec);
        xa_unlock_irq(&mapping->i_pages);
                goto error;
        }
 
-       trace_mm_filemap_add_to_page_cache(&folio->page);
+       trace_mm_filemap_add_to_page_cache(folio);
        return 0;
 error:
        folio->mapping = NULL;