ocfs2: use a folio in ocfs2_map_and_dirty_page()
authorMark Tinguely <mark.tinguely@oracle.com>
Thu, 5 Dec 2024 17:16:41 +0000 (17:16 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 13 Jan 2025 04:21:11 +0000 (20:21 -0800)
Convert the incoming page to a folio and use it throughout the function.
Removes a couple of calls to compound_head().

Link: https://lkml.kernel.org/r/20241205171653.3179945-14-willy@infradead.org
Signed-off-by: Mark Tinguely <mark.tinguely@oracle.com>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Jun Piao <piaojun@huawei.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Mark Fasheh <mark@fasheh.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/ocfs2/alloc.c

index b3fa953..f65e8f1 100644 (file)
@@ -6812,8 +6812,9 @@ void ocfs2_map_and_dirty_page(struct inode *inode, handle_t *handle,
                              unsigned int from, unsigned int to,
                              struct page *page, int zero, u64 *phys)
 {
+       struct folio *folio = page_folio(page);
        int ret, partial = 0;
-       loff_t start_byte = ((loff_t)page->index << PAGE_SHIFT) + from;
+       loff_t start_byte = folio_pos(folio) + from;
        loff_t length = to - from;
 
        ret = ocfs2_map_page_blocks(page, phys, inode, from, to, 0);
@@ -6821,14 +6822,14 @@ void ocfs2_map_and_dirty_page(struct inode *inode, handle_t *handle,
                mlog_errno(ret);
 
        if (zero)
-               zero_user_segment(page, from, to);
+               folio_zero_segment(folio, from, to);
 
        /*
         * Need to set the buffers we zero'd into uptodate
         * here if they aren't - ocfs2_map_page_blocks()
         * might've skipped some
         */
-       ret = walk_page_buffers(handle, page_buffers(page),
+       ret = walk_page_buffers(handle, folio_buffers(folio),
                                from, to, &partial,
                                ocfs2_zero_func);
        if (ret < 0)
@@ -6841,9 +6842,9 @@ void ocfs2_map_and_dirty_page(struct inode *inode, handle_t *handle,
        }
 
        if (!partial)
-               SetPageUptodate(page);
+               folio_mark_uptodate(folio);
 
-       flush_dcache_page(page);
+       flush_dcache_folio(folio);
 }
 
 static void ocfs2_zero_cluster_pages(struct inode *inode, loff_t start,