diff mbox series

[11/26] 9p: Use alternative invalidation to using launder_folio

Message ID 20240328163424.2781320-12-dhowells@redhat.com (mailing list archive)
State Not Applicable
Headers show
Series netfs, afs, 9p, cifs: Rework netfs to use ->writepages() to copy to cache | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

David Howells March 28, 2024, 4:34 p.m. UTC
Use writepages-based flushing invalidation instead of
invalidate_inode_pages2() and ->launder_folio().  This will allow
->launder_folio() to be removed eventually.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Van Hensbergen <ericvh@kernel.org>
cc: Latchesar Ionkov <lucho@ionkov.net>
cc: Dominique Martinet <asmadeus@codewreck.org>
cc: Christian Schoenebeck <linux_oss@crudebyte.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: v9fs@lists.linux.dev
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
---
 fs/9p/vfs_addr.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Jeffrey Layton April 15, 2024, 11:43 a.m. UTC | #1
On Thu, 2024-03-28 at 16:34 +0000, David Howells wrote:
> Use writepages-based flushing invalidation instead of
> invalidate_inode_pages2() and ->launder_folio().  This will allow
> ->launder_folio() to be removed eventually.
> 
> Signed-off-by: David Howells <dhowells@redhat.com>
> cc: Eric Van Hensbergen <ericvh@kernel.org>
> cc: Latchesar Ionkov <lucho@ionkov.net>
> cc: Dominique Martinet <asmadeus@codewreck.org>
> cc: Christian Schoenebeck <linux_oss@crudebyte.com>
> cc: Jeff Layton <jlayton@kernel.org>
> cc: v9fs@lists.linux.dev
> cc: netfs@lists.linux.dev
> cc: linux-fsdevel@vger.kernel.org
> ---
>  fs/9p/vfs_addr.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c
> index 047855033d32..5a943c122d83 100644
> --- a/fs/9p/vfs_addr.c
> +++ b/fs/9p/vfs_addr.c
> @@ -89,7 +89,6 @@ static int v9fs_init_request(struct netfs_io_request *rreq, struct file *file)
>  	bool writing = (rreq->origin == NETFS_READ_FOR_WRITE ||
>  			rreq->origin == NETFS_WRITEBACK ||
>  			rreq->origin == NETFS_WRITETHROUGH ||
> -			rreq->origin == NETFS_LAUNDER_WRITE ||
>  			rreq->origin == NETFS_UNBUFFERED_WRITE ||
>  			rreq->origin == NETFS_DIO_WRITE);
>  
> @@ -141,7 +140,6 @@ const struct address_space_operations v9fs_addr_operations = {
>  	.dirty_folio		= netfs_dirty_folio,
>  	.release_folio		= netfs_release_folio,
>  	.invalidate_folio	= netfs_invalidate_folio,
> -	.launder_folio		= netfs_launder_folio,
>  	.direct_IO		= noop_direct_IO,
>  	.writepages		= netfs_writepages,
>  };
> 

Shouldn't this include a call to filemap_invalidate_inode? Is just
removing launder_folio enough to do this?
David Howells April 16, 2024, 11:03 p.m. UTC | #2
Jeff Layton <jlayton@kernel.org> wrote:

> Shouldn't this include a call to filemap_invalidate_inode? Is just
> removing launder_folio enough to do this?

Good point.  netfs_unbuffered_write_iter() calls kiocb_invalidate_pages() -
which uses invalidate_inode_pages2_range() to discard the pagecache.  It
should probably use filemap_invalidate_inode() instead.

David
diff mbox series

Patch

diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c
index 047855033d32..5a943c122d83 100644
--- a/fs/9p/vfs_addr.c
+++ b/fs/9p/vfs_addr.c
@@ -89,7 +89,6 @@  static int v9fs_init_request(struct netfs_io_request *rreq, struct file *file)
 	bool writing = (rreq->origin == NETFS_READ_FOR_WRITE ||
 			rreq->origin == NETFS_WRITEBACK ||
 			rreq->origin == NETFS_WRITETHROUGH ||
-			rreq->origin == NETFS_LAUNDER_WRITE ||
 			rreq->origin == NETFS_UNBUFFERED_WRITE ||
 			rreq->origin == NETFS_DIO_WRITE);
 
@@ -141,7 +140,6 @@  const struct address_space_operations v9fs_addr_operations = {
 	.dirty_folio		= netfs_dirty_folio,
 	.release_folio		= netfs_release_folio,
 	.invalidate_folio	= netfs_invalidate_folio,
-	.launder_folio		= netfs_launder_folio,
 	.direct_IO		= noop_direct_IO,
 	.writepages		= netfs_writepages,
 };