Message ID | 20241205171653.3179945-14-willy@infradead.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Convert ocfs2 to use folios | expand |
On 2024/12/6 01:16, Matthew Wilcox (Oracle) wrote: > From: Mark Tinguely <mark.tinguely@oracle.com> > > Convert the incoming page to a folio and use it throughout the > function. Removes a couple of calls to compound_head(). > > Signed-off-by: Mark Tinguely <mark.tinguely@oracle.com> > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Looks good. Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com> > --- > fs/ocfs2/alloc.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c > index 395e23920632..e95fe65b6a74 100644 > --- a/fs/ocfs2/alloc.c > +++ b/fs/ocfs2/alloc.c > @@ -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,
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c index 395e23920632..e95fe65b6a74 100644 --- a/fs/ocfs2/alloc.c +++ b/fs/ocfs2/alloc.c @@ -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,