Re: [PATCH -next] hostfs: Convert hostfs_writepage to use folio

From: Matthew Wilcox
Date: Thu Sep 12 2024 - 14:37:06 EST


On Thu, Sep 12, 2024 at 08:22:48PM +0200, Richard Weinberger wrote:
> ----- Ursprüngliche Mail -----
> > Von: "Li Zetao" <lizetao1@xxxxxxxxxx>
> > An: "richard" <richard@xxxxxx>, "anton ivanov" <anton.ivanov@xxxxxxxxxxxxxxxxxx>, "Johannes Berg"
> > <johannes@xxxxxxxxxxxxxxxx>
> > CC: lizetao1@xxxxxxxxxx, "linux-um" <linux-um@xxxxxxxxxxxxxxxxxxx>, "linux-kernel" <linux-kernel@xxxxxxxxxxxxxxx>
> > Gesendet: Dienstag, 20. August 2024 04:50:45
> > Betreff: [PATCH -next] hostfs: Convert hostfs_writepage to use folio
>
> > convert to use folio, so that we can get rid of 'page->index' to
> > prepare for removal of 'index' field in structure page [1].

Ideally, we would not do this, instead converting hostfs to use
writepages instead of writepage. I haven't done this work; would
someone like to do it?

> > static int hostfs_writepage(struct page *page, struct writeback_control *wbc)
> > {
> > - struct address_space *mapping = page->mapping;
> > - struct inode *inode = mapping->host;
> > + struct folio *folio = page_folio(page);
> > + struct address_space *mapping = folio->mapping;
> > + struct inode *inode = folio_inode(folio);

Don't use folio_inode() here, leave it as it was.

> > - if (page->index >= end_index)
> > + if (folio->index >= end_index)
> > count = inode->i_size & (PAGE_SIZE-1);
> >
> > - buffer = kmap_local_page(page);
> > + buffer = kmap_local_folio(folio, 0);

These two lines assume that hostfs remains a non-large-folio filesystem.
I'm not sure what the plans are for hostfs.