Commit 949d67ac authored by Josef Bacik's avatar Josef Bacik Committed by Miklos Szeredi
Browse files

fuse: use the folio based vmstat helpers



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.

Reviewed-by: default avatarJoanne Koong <joannelkoong@gmail.com>
Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent 6930b8da
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -1820,12 +1820,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);
}

@@ -1837,7 +1837,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);
}
@@ -1892,7 +1892,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);
	}

@@ -2112,7 +2113,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,
@@ -2286,7 +2287,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);
	}