]> www.infradead.org Git - linux.git/commitdiff
jfs; Convert __invalidate_metapages to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 17 Apr 2024 17:56:52 +0000 (18:56 +0100)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Tue, 28 May 2024 01:37:05 +0000 (20:37 -0500)
Retrieve a folio from the page cache instead of a page.  Saves 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 dd540df0a617b569db21b95eb3b1e3708ecbf82a..90a284d3bef7881263aa1c505ca0893ff179c74d 100644 (file)
@@ -791,7 +791,6 @@ void __invalidate_metapages(struct inode *ip, s64 addr, int len)
        struct address_space *mapping =
                JFS_SBI(ip->i_sb)->direct_inode->i_mapping;
        struct metapage *mp;
-       struct page *page;
        unsigned int offset;
 
        /*
@@ -800,11 +799,12 @@ void __invalidate_metapages(struct inode *ip, s64 addr, int len)
         */
        for (lblock = addr & ~(BlocksPerPage - 1); lblock < addr + len;
             lblock += BlocksPerPage) {
-               page = find_lock_page(mapping, lblock >> l2BlocksPerPage);
-               if (!page)
+               struct folio *folio = filemap_lock_folio(mapping,
+                               lblock >> l2BlocksPerPage);
+               if (IS_ERR(folio))
                        continue;
                for (offset = 0; offset < PAGE_SIZE; offset += PSIZE) {
-                       mp = page_to_mp(page, offset);
+                       mp = page_to_mp(&folio->page, offset);
                        if (!mp)
                                continue;
                        if (mp->index < addr)
@@ -817,8 +817,8 @@ void __invalidate_metapages(struct inode *ip, s64 addr, int len)
                        if (mp->lsn)
                                remove_from_logsync(mp);
                }
-               unlock_page(page);
-               put_page(page);
+               folio_unlock(folio);
+               folio_put(folio);
        }
 }