]> www.infradead.org Git - linux.git/commitdiff
jfs: Convert drop_metapage and remove_metapage to take a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 17 Apr 2024 17:56:50 +0000 (18:56 +0100)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Fri, 24 May 2024 15:26:05 +0000 (10:26 -0500)
All callers now have a folio, so pass it in instead of the page.
Removes a couple of calls to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
fs/jfs/jfs_metapage.c

index 4515dc1ac40e7a7f22d7fc30ac6baac2046d0c1f..9fc52c27b0ce23b54beaeff7c30061108d0fdfb5 100644 (file)
@@ -112,10 +112,10 @@ static inline int insert_metapage(struct folio *folio, struct metapage *mp)
        return 0;
 }
 
-static inline void remove_metapage(struct page *page, struct metapage *mp)
+static inline void remove_metapage(struct folio *folio, struct metapage *mp)
 {
-       struct meta_anchor *a = mp_anchor(page);
-       int l2mp_blocks = L2PSIZE - page->mapping->host->i_blkbits;
+       struct meta_anchor *a = folio->private;
+       int l2mp_blocks = L2PSIZE - folio->mapping->host->i_blkbits;
        int index;
 
        index = (mp->index >> l2mp_blocks) & (MPS_PER_PAGE - 1);
@@ -125,8 +125,8 @@ static inline void remove_metapage(struct page *page, struct metapage *mp)
        a->mp[index] = NULL;
        if (--a->mp_count == 0) {
                kfree(a);
-               detach_page_private(page);
-               kunmap(page);
+               folio_detach_private(folio);
+               kunmap(&folio->page);
        }
 }
 
@@ -156,10 +156,10 @@ static inline int insert_metapage(struct folio *folio, struct metapage *mp)
        return 0;
 }
 
-static inline void remove_metapage(struct page *page, struct metapage *mp)
+static inline void remove_metapage(struct folio *folio, struct metapage *mp)
 {
-       detach_page_private(page);
-       kunmap(page);
+       folio_detach_private(folio);
+       kunmap(&folio->page);
 }
 
 #define inc_io(page) do {} while(0)
@@ -214,12 +214,12 @@ void metapage_exit(void)
        kmem_cache_destroy(metapage_cache);
 }
 
-static inline void drop_metapage(struct page *page, struct metapage *mp)
+static inline void drop_metapage(struct folio *folio, struct metapage *mp)
 {
        if (mp->count || mp->nohomeok || test_bit(META_dirty, &mp->flag) ||
            test_bit(META_io, &mp->flag))
                return;
-       remove_metapage(page, mp);
+       remove_metapage(folio, mp);
        INCREMENT(mpStat.pagefree);
        free_metapage(mp);
 }
@@ -539,7 +539,7 @@ static bool metapage_release_folio(struct folio *folio, gfp_t gfp_mask)
                }
                if (mp->lsn)
                        remove_from_logsync(mp);
-               remove_metapage(&folio->page, mp);
+               remove_metapage(folio, mp);
                INCREMENT(mpStat.pagefree);
                free_metapage(mp);
        }
@@ -774,7 +774,7 @@ void release_metapage(struct metapage * mp)
                remove_from_logsync(mp);
 
        /* Try to keep metapages from using up too much memory */
-       drop_metapage(&folio->page, mp);
+       drop_metapage(folio, mp);
 
        folio_unlock(folio);
        folio_put(folio);