diff mbox series

freevxfs: Convert vxfs_immed_read_folio to the new folio APIs

Message ID 20231206204629.771797-1-willy@infradead.org (mailing list archive)
State New, archived
Headers show
Series freevxfs: Convert vxfs_immed_read_folio to the new folio APIs | expand

Commit Message

Matthew Wilcox Dec. 6, 2023, 8:46 p.m. UTC
Use folio_fill_tail() and folio_end_read() instead of open-coding them.
Add a sanity check in case a folio is allocated above index 0.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/freevxfs/vxfs_immed.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

Comments

Christoph Hellwig Dec. 7, 2023, 5:24 a.m. UTC | #1
On Wed, Dec 06, 2023 at 08:46:29PM +0000, Matthew Wilcox (Oracle) wrote:
> Use folio_fill_tail() and folio_end_read() instead of open-coding them.
> Add a sanity check in case a folio is allocated above index 0.

Where do these helpers come from?  Can't find them in Linus' tree.
Matthew Wilcox Dec. 7, 2023, 1:22 p.m. UTC | #2
On Wed, Dec 06, 2023 at 09:24:03PM -0800, Christoph Hellwig wrote:
> On Wed, Dec 06, 2023 at 08:46:29PM +0000, Matthew Wilcox (Oracle) wrote:
> > Use folio_fill_tail() and folio_end_read() instead of open-coding them.
> > Add a sanity check in case a folio is allocated above index 0.
> 
> Where do these helpers come from?  Can't find them in Linus' tree.

Is your tree out of date?

0b237047d5a7 for folio_end_read()
$ git describe --contains 0b237047d5a7
v6.7-rc1~90^2~161

folio_fill_tail() appears to only be in akpm's tree for now.  Looks like
it's still in the 'unstable' part for now, so no sha1 for that.
Christoph Hellwig Dec. 12, 2023, 7:44 a.m. UTC | #3
On Thu, Dec 07, 2023 at 01:22:03PM +0000, Matthew Wilcox wrote:
> On Wed, Dec 06, 2023 at 09:24:03PM -0800, Christoph Hellwig wrote:
> > On Wed, Dec 06, 2023 at 08:46:29PM +0000, Matthew Wilcox (Oracle) wrote:
> > > Use folio_fill_tail() and folio_end_read() instead of open-coding them.
> > > Add a sanity check in case a folio is allocated above index 0.
> > 
> > Where do these helpers come from?  Can't find them in Linus' tree.
> 
> Is your tree out of date?
> 
> 0b237047d5a7 for folio_end_read()
> $ git describe --contains 0b237047d5a7
> v6.7-rc1~90^2~161
> 
> folio_fill_tail() appears to only be in akpm's tree for now.  Looks like
> it's still in the 'unstable' part for now, so no sha1 for that.

Heh, I only looked for the first one.  But adding what tree you're
sending a patch against not only makes reviewing possible, but also
helps with the destination.
diff mbox series

Patch

diff --git a/fs/freevxfs/vxfs_immed.c b/fs/freevxfs/vxfs_immed.c
index 9b49ec36e667..b9c6c7118e58 100644
--- a/fs/freevxfs/vxfs_immed.c
+++ b/fs/freevxfs/vxfs_immed.c
@@ -28,19 +28,16 @@ 
  * Locking status:
  *   @folio is locked and will be unlocked.
  */
-static int vxfs_immed_read_folio(struct file *fp, struct folio *folio)
+static int vxfs_immed_read_folio(struct file *file, struct folio *folio)
 {
 	struct vxfs_inode_info *vip = VXFS_INO(folio->mapping->host);
-	void *src = vip->vii_immed.vi_immed + folio_pos(folio);
-	unsigned long i;
+	size_t len = VXFS_NIMMED;
 
-	for (i = 0; i < folio_nr_pages(folio); i++) {
-		memcpy_to_page(folio_page(folio, i), 0, src, PAGE_SIZE);
-		src += PAGE_SIZE;
-	}
+	if (folio->index > 0)
+		len = 0;
 
-	folio_mark_uptodate(folio);
-	folio_unlock(folio);
+	folio_fill_tail(folio, 0, vip->vii_immed.vi_immed, len);
+	folio_end_read(folio, true);
 
 	return 0;
 }