Message ID | 20240328163424.2781320-12-dhowells@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | netfs, afs, 9p, cifs: Rework netfs to use ->writepages() to copy to cache | expand |
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?
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 --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, };
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(-)