linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: Christian Brauner <brauner@kernel.org>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
	linux-fsdevel@vger.kernel.org,
	Hans de Goede <hdegoede@redhat.com>
Subject: [PATCH 14/16] vboxsf: Convert vboxsf_read_folio() to use a folio
Date: Thu, 30 May 2024 21:21:06 +0100	[thread overview]
Message-ID: <20240530202110.2653630-15-willy@infradead.org> (raw)
In-Reply-To: <20240530202110.2653630-1-willy@infradead.org>

Remove conversion to a page and use folio APIs throughout.  This includes
a removal of setting the error flag as nobody checks the error flag on
vboxsf folios.  This does not include large folio support as we would
have to map each page individually.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Tested-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 fs/vboxsf/file.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/fs/vboxsf/file.c b/fs/vboxsf/file.c
index 118dedef8ebe..fdb4da24d662 100644
--- a/fs/vboxsf/file.c
+++ b/fs/vboxsf/file.c
@@ -228,26 +228,19 @@ const struct inode_operations vboxsf_reg_iops = {
 
 static int vboxsf_read_folio(struct file *file, struct folio *folio)
 {
-	struct page *page = &folio->page;
 	struct vboxsf_handle *sf_handle = file->private_data;
-	loff_t off = page_offset(page);
+	loff_t off = folio_pos(folio);
 	u32 nread = PAGE_SIZE;
 	u8 *buf;
 	int err;
 
-	buf = kmap(page);
+	buf = kmap_local_folio(folio, 0);
 
 	err = vboxsf_read(sf_handle->root, sf_handle->handle, off, &nread, buf);
-	if (err == 0) {
-		memset(&buf[nread], 0, PAGE_SIZE - nread);
-		flush_dcache_page(page);
-		SetPageUptodate(page);
-	} else {
-		SetPageError(page);
-	}
+	buf = folio_zero_tail(folio, nread, buf + nread);
 
-	kunmap(page);
-	unlock_page(page);
+	kunmap_local(buf);
+	folio_end_read(folio, err == 0);
 	return err;
 }
 
@@ -295,7 +288,6 @@ static int vboxsf_writepage(struct page *page, struct writeback_control *wbc)
 	kref_put(&sf_handle->refcount, vboxsf_handle_release);
 
 	if (err == 0) {
-		ClearPageError(page);
 		/* mtime changed */
 		sf_i->force_restat = 1;
 	} else {
-- 
2.43.0


  parent reply	other threads:[~2024-05-30 20:21 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-30 20:20 [PATCH 00/16] Prepare to remove PG_error Matthew Wilcox (Oracle)
2024-05-30 20:20 ` [PATCH 01/16] befs: Convert befs_symlink_read_folio() to use folio_end_read() Matthew Wilcox (Oracle)
2024-05-30 20:20 ` [PATCH 02/16] coda: Convert coda_symlink_filler() " Matthew Wilcox (Oracle)
2024-05-30 20:20 ` [PATCH 03/16] cramfs: Convert cramfs_read_folio to use a folio Matthew Wilcox (Oracle)
2024-05-30 20:20 ` [PATCH 04/16] efs: Convert efs_symlink_read_folio " Matthew Wilcox (Oracle)
2024-05-30 20:20 ` [PATCH 05/16] hpfs: Convert hpfs_symlink_read_folio " Matthew Wilcox (Oracle)
2024-05-30 20:20 ` [PATCH 06/16] isofs: Convert rock_ridge_symlink_read_folio " Matthew Wilcox (Oracle)
2024-05-30 20:20 ` [PATCH 07/16] hostfs: Convert hostfs_read_folio() " Matthew Wilcox (Oracle)
2024-05-30 20:21 ` [PATCH 08/16] jffs2: Remove calls to set/clear the folio error flag Matthew Wilcox (Oracle)
2024-05-30 20:21 ` [PATCH 09/16] nfs: Remove calls to folio_set_error Matthew Wilcox (Oracle)
2024-05-30 20:21 ` [PATCH 10/16] orangefs: Remove calls to set/clear the error flag Matthew Wilcox (Oracle)
2024-05-30 20:21 ` [PATCH 11/16] reiserfs: Remove call to folio_set_error() Matthew Wilcox (Oracle)
2024-05-30 20:21 ` [PATCH 12/16] romfs: Convert romfs_read_folio() to use a folio Matthew Wilcox (Oracle)
2024-08-12  1:46   ` Greg Ungerer
2024-08-12  3:30     ` Matthew Wilcox
2024-08-12  4:36       ` Greg Ungerer
2024-08-14 19:32         ` Matthew Wilcox
2024-08-15 12:42           ` Christian Brauner
2024-08-26  1:34             ` Greg Ungerer
2024-08-26 10:42               ` Christian Brauner
2024-05-30 20:21 ` [PATCH 13/16] ufs: Remove call to set the folio error flag Matthew Wilcox (Oracle)
2024-05-30 20:21 ` Matthew Wilcox (Oracle) [this message]
2024-05-30 20:21 ` [PATCH 15/16] iomap: Remove calls to set and clear " Matthew Wilcox (Oracle)
2024-05-30 20:21 ` [PATCH 16/16] buffer: Remove calls to set and clear the " Matthew Wilcox (Oracle)
2024-05-31 10:34 ` [PATCH 00/16] Prepare to remove PG_error Christian Brauner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240530202110.2653630-15-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=brauner@kernel.org \
    --cc=hdegoede@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).