diff mbox series

[13/23] ocfs2: Use a folio in ocfs2_map_and_dirty_page()

Message ID 20241205171653.3179945-14-willy@infradead.org (mailing list archive)
State New
Headers show
Series Convert ocfs2 to use folios | expand

Commit Message

Matthew Wilcox (Oracle) Dec. 5, 2024, 5:16 p.m. UTC
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>
---
 fs/ocfs2/alloc.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

Comments

Joseph Qi Dec. 14, 2024, 2:27 p.m. UTC | #1
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 mbox series

Patch

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,