Re: [PATCH -next] hostfs: Convert hostfs_writepage to use folio
From: Richard Weinberger
Date: Thu Sep 12 2024 - 14:31:19 EST
----- 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].
>
> [1]: https://lore.kernel.org/all/Zp8fgUSIBGQ1TN0D@xxxxxxxxxxxxxxxxxxxx/
>
> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>
You patch submission didn't CC Matthew. Adding him now.
> Signed-off-by: Li Zetao <lizetao1@xxxxxxxxxx>
> ---
> fs/hostfs/hostfs_kern.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
> index 6d1cf2436ead..e17e70f20fa1 100644
> --- a/fs/hostfs/hostfs_kern.c
> +++ b/fs/hostfs/hostfs_kern.c
> @@ -411,18 +411,19 @@ static const struct file_operations hostfs_dir_fops = {
>
> 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);
> char *buffer;
> - loff_t base = page_offset(page);
> + loff_t base = folio_pos(folio);
> int count = PAGE_SIZE;
> int end_index = inode->i_size >> PAGE_SHIFT;
> int err;
>
> - 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);
>
> err = write_file(HOSTFS_I(inode)->fd, &base, buffer, count);
> if (err != count) {
> @@ -439,7 +440,7 @@ static int hostfs_writepage(struct page *page, struct
> writeback_control *wbc)
>
> out:
> kunmap_local(buffer);
> - unlock_page(page);
> + folio_unlock(folio);
>
> return err;
> }
> --
> 2.34.1