diff mbox series

[09/11] fuse: use the folio based vmstat helpers

Message ID d3cc890dfeefcd79d0217c7f1aab7debe604b395.1724791233.git.josef@toxicpanda.com (mailing list archive)
State New
Headers show
Series fuse: convert to using folios and iomap | expand

Commit Message

Josef Bacik Aug. 27, 2024, 8:45 p.m. UTC
In order to make it easier to switch to folios in the fuse_args_pages
update the places where we update the vmstat counters for writeback to
use the folio related helpers.  On the inc side this is easy as we
already have the folio, on the dec side we have to page_folio() the
pages for now.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 fs/fuse/file.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

Comments

Joanne Koong Aug. 27, 2024, 10:05 p.m. UTC | #1
On Tue, Aug 27, 2024 at 1:46 PM Josef Bacik <josef@toxicpanda.com> wrote:
>
> In order to make it easier to switch to folios in the fuse_args_pages
> update the places where we update the vmstat counters for writeback to
> use the folio related helpers.  On the inc side this is easy as we
> already have the folio, on the dec side we have to page_folio() the
> pages for now.
>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>

LGTM.

Reviewed-by: Joanne Koong <joannelkoong@gmail.com>
> ---
>  fs/fuse/file.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/fs/fuse/file.c b/fs/fuse/file.c
> index 3ef6c2f58940..e03b915d8229 100644
> --- a/fs/fuse/file.c
> +++ b/fs/fuse/file.c
> @@ -1853,12 +1853,12 @@ static void fuse_writepage_free(struct fuse_writepage_args *wpa)
>         kfree(wpa);
>  }
>
> -static void fuse_writepage_finish_stat(struct inode *inode, struct page *page)
> +static void fuse_writepage_finish_stat(struct inode *inode, struct folio *folio)
>  {
>         struct backing_dev_info *bdi = inode_to_bdi(inode);
>
>         dec_wb_stat(&bdi->wb, WB_WRITEBACK);
> -       dec_node_page_state(page, NR_WRITEBACK_TEMP);
> +       node_stat_sub_folio(folio, NR_WRITEBACK_TEMP);
>         wb_writeout_inc(&bdi->wb);
>  }
>
> @@ -1870,7 +1870,7 @@ static void fuse_writepage_finish(struct fuse_writepage_args *wpa)
>         int i;
>
>         for (i = 0; i < ap->num_pages; i++)
> -               fuse_writepage_finish_stat(inode, ap->pages[i]);
> +               fuse_writepage_finish_stat(inode, page_folio(ap->pages[i]));
>
>         wake_up(&fi->page_waitq);
>  }
> @@ -1925,7 +1925,8 @@ __acquires(fi->lock)
>         for (aux = wpa->next; aux; aux = next) {
>                 next = aux->next;
>                 aux->next = NULL;
> -               fuse_writepage_finish_stat(aux->inode, aux->ia.ap.pages[0]);
> +               fuse_writepage_finish_stat(aux->inode,
> +                                          page_folio(aux->ia.ap.pages[0]));
>                 fuse_writepage_free(aux);
>         }
>
> @@ -2145,7 +2146,7 @@ static void fuse_writepage_args_page_fill(struct fuse_writepage_args *wpa, struc
>         ap->descs[page_index].length = PAGE_SIZE;
>
>         inc_wb_stat(&inode_to_bdi(inode)->wb, WB_WRITEBACK);
> -       inc_node_page_state(&tmp_folio->page, NR_WRITEBACK_TEMP);
> +       node_stat_add_folio(tmp_folio, NR_WRITEBACK_TEMP);
>  }
>
>  static struct fuse_writepage_args *fuse_writepage_args_setup(struct folio *folio,
> @@ -2319,7 +2320,8 @@ static bool fuse_writepage_add(struct fuse_writepage_args *new_wpa,
>         spin_unlock(&fi->lock);
>
>         if (tmp) {
> -               fuse_writepage_finish_stat(new_wpa->inode, new_ap->pages[0]);
> +               fuse_writepage_finish_stat(new_wpa->inode,
> +                                          page_folio(new_ap->pages[0]));
>                 fuse_writepage_free(new_wpa);
>         }
>
> --
> 2.43.0
>
diff mbox series

Patch

diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 3ef6c2f58940..e03b915d8229 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1853,12 +1853,12 @@  static void fuse_writepage_free(struct fuse_writepage_args *wpa)
 	kfree(wpa);
 }
 
-static void fuse_writepage_finish_stat(struct inode *inode, struct page *page)
+static void fuse_writepage_finish_stat(struct inode *inode, struct folio *folio)
 {
 	struct backing_dev_info *bdi = inode_to_bdi(inode);
 
 	dec_wb_stat(&bdi->wb, WB_WRITEBACK);
-	dec_node_page_state(page, NR_WRITEBACK_TEMP);
+	node_stat_sub_folio(folio, NR_WRITEBACK_TEMP);
 	wb_writeout_inc(&bdi->wb);
 }
 
@@ -1870,7 +1870,7 @@  static void fuse_writepage_finish(struct fuse_writepage_args *wpa)
 	int i;
 
 	for (i = 0; i < ap->num_pages; i++)
-		fuse_writepage_finish_stat(inode, ap->pages[i]);
+		fuse_writepage_finish_stat(inode, page_folio(ap->pages[i]));
 
 	wake_up(&fi->page_waitq);
 }
@@ -1925,7 +1925,8 @@  __acquires(fi->lock)
 	for (aux = wpa->next; aux; aux = next) {
 		next = aux->next;
 		aux->next = NULL;
-		fuse_writepage_finish_stat(aux->inode, aux->ia.ap.pages[0]);
+		fuse_writepage_finish_stat(aux->inode,
+					   page_folio(aux->ia.ap.pages[0]));
 		fuse_writepage_free(aux);
 	}
 
@@ -2145,7 +2146,7 @@  static void fuse_writepage_args_page_fill(struct fuse_writepage_args *wpa, struc
 	ap->descs[page_index].length = PAGE_SIZE;
 
 	inc_wb_stat(&inode_to_bdi(inode)->wb, WB_WRITEBACK);
-	inc_node_page_state(&tmp_folio->page, NR_WRITEBACK_TEMP);
+	node_stat_add_folio(tmp_folio, NR_WRITEBACK_TEMP);
 }
 
 static struct fuse_writepage_args *fuse_writepage_args_setup(struct folio *folio,
@@ -2319,7 +2320,8 @@  static bool fuse_writepage_add(struct fuse_writepage_args *new_wpa,
 	spin_unlock(&fi->lock);
 
 	if (tmp) {
-		fuse_writepage_finish_stat(new_wpa->inode, new_ap->pages[0]);
+		fuse_writepage_finish_stat(new_wpa->inode,
+					   page_folio(new_ap->pages[0]));
 		fuse_writepage_free(new_wpa);
 	}