All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: Eric Van Hensbergen <ericvh@kernel.org>,
	 Latchesar Ionkov <lucho@ionkov.net>,
	 Dominique Martinet <asmadeus@codewreck.org>,
	 Christian Schoenebeck <linux_oss@crudebyte.com>,
	 David Howells <dhowells@redhat.com>,
	Marc Dionne <marc.dionne@auristor.com>,  Chris Mason <clm@fb.com>,
	Josef Bacik <josef@toxicpanda.com>,
	 David Sterba <dsterba@suse.com>, Xiubo Li <xiubli@redhat.com>,
	 Ilya Dryomov <idryomov@gmail.com>,
	Jan Harkes <jaharkes@cs.cmu.edu>,
	 coda@cs.cmu.edu, Tyler Hicks <code@tyhicks.com>,
	 Gao Xiang <xiang@kernel.org>, Chao Yu <chao@kernel.org>,
	 Yue Hu <huyue2@coolpad.com>,
	Jeffle Xu <jefflexu@linux.alibaba.com>,
	 Namjae Jeon <linkinjeon@kernel.org>,
	Sungjong Seo <sj1557.seo@samsung.com>,  Jan Kara <jack@suse.com>,
	Theodore Ts'o <tytso@mit.edu>,
	 Andreas Dilger <adilger.kernel@dilger.ca>,
	Jaegeuk Kim <jaegeuk@kernel.org>,
	 OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	 Miklos Szeredi <miklos@szeredi.hu>,
	Bob Peterson <rpeterso@redhat.com>,
	 Andreas Gruenbacher <agruenba@redhat.com>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Tejun Heo <tj@kernel.org>,
	 Alexander Viro <viro@zeniv.linux.org.uk>,
	 Christian Brauner <brauner@kernel.org>,
	 Trond Myklebust <trond.myklebust@hammerspace.com>,
	 Anna Schumaker <anna@kernel.org>,
	 Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
	 Mark Fasheh <mark@fasheh.com>, Joel Becker <jlbec@evilplan.org>,
	 Joseph Qi <joseph.qi@linux.alibaba.com>,
	 Mike Marshall <hubcap@omnibond.com>,
	 Martin Brandenburg <martin@omnibond.com>,
	 Luis Chamberlain <mcgrof@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	 Iurii Zaikin <yzaikin@google.com>,
	Steve French <sfrench@samba.org>,
	 Paulo Alcantara <pc@manguebit.com>,
	Ronnie Sahlberg <lsahlber@redhat.com>,
	 Shyam Prasad N <sprasad@microsoft.com>,
	Tom Talpey <tom@talpey.com>,
	 Sergey Senozhatsky <senozhatsky@chromium.org>,
	 Richard Weinberger <richard@nod.at>,
	Hans de Goede <hdegoede@redhat.com>,
	 Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	 "Darrick J. Wong" <djwong@kernel.org>
Cc: Dave Chinner <david@fromorbit.com>,
	v9fs@lists.linux.dev,  linux-kernel@vger.kernel.org,
	linux-afs@lists.infradead.org,  linux-btrfs@vger.kernel.org,
	ceph-devel@vger.kernel.org,  codalist@coda.cs.cmu.edu,
	ecryptfs@vger.kernel.org,  linux-erofs@lists.ozlabs.org,
	linux-fsdevel@vger.kernel.org,  linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net,
	 cluster-devel@redhat.com, linux-nfs@vger.kernel.org,
	ntfs3@lists.linux.dev,  ocfs2-devel@lists.linux.dev,
	devel@lists.orangefs.org,  linux-cifs@vger.kernel.org,
	samba-technical@lists.samba.org,  linux-mtd@lists.infradead.org,
	linux-mm@kvack.org,  linux-xfs@vger.kernel.org,
	Jeff Layton <jlayton@kernel.org>
Subject: [PATCH v5 3/8] tmpfs: bump the mtime/ctime/iversion when page becomes writeable
Date: Thu, 13 Jul 2023 19:00:52 -0400	[thread overview]
Message-ID: <20230713-mgctime-v5-3-9eb795d2ae37@kernel.org> (raw)
In-Reply-To: <20230713-mgctime-v5-0-9eb795d2ae37@kernel.org>

Most filesystems that use the pagecache will update the mtime, ctime,
and change attribute when a page becomes writeable. Add a page_mkwrite
operation for tmpfs and just use it to bump the mtime, ctime and change
attribute.

This fixes xfstest generic/080 on tmpfs.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 mm/shmem.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/mm/shmem.c b/mm/shmem.c
index b154af49d2df..654d9a585820 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2169,6 +2169,16 @@ static vm_fault_t shmem_fault(struct vm_fault *vmf)
 	return ret;
 }
 
+static vm_fault_t shmem_page_mkwrite(struct vm_fault *vmf)
+{
+	struct vm_area_struct *vma = vmf->vma;
+	struct inode *inode = file_inode(vma->vm_file);
+
+	file_update_time(vma->vm_file);
+	inode_inc_iversion(inode);
+	return 0;
+}
+
 unsigned long shmem_get_unmapped_area(struct file *file,
 				      unsigned long uaddr, unsigned long len,
 				      unsigned long pgoff, unsigned long flags)
@@ -4210,6 +4220,7 @@ static const struct super_operations shmem_ops = {
 
 static const struct vm_operations_struct shmem_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,
@@ -4219,6 +4230,7 @@ static const struct vm_operations_struct shmem_vm_ops = {
 
 static const struct vm_operations_struct shmem_anon_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,

-- 
2.41.0


WARNING: multiple messages have this Message-ID (diff)
From: Jeff Layton <jlayton@kernel.org>
To: Eric Van Hensbergen <ericvh@kernel.org>,
	 Latchesar Ionkov <lucho@ionkov.net>,
	 Dominique Martinet <asmadeus@codewreck.org>,
	 Christian Schoenebeck <linux_oss@crudebyte.com>,
	 David Howells <dhowells@redhat.com>,
	Marc Dionne <marc.dionne@auristor.com>,  Chris Mason <clm@fb.com>,
	Josef Bacik <josef@toxicpanda.com>,
	 David Sterba <dsterba@suse.com>, Xiubo Li <xiubli@redhat.com>,
	 Ilya Dryomov <idryomov@gmail.com>,
	Jan Harkes <jaharkes@cs.cmu.edu>,
	 coda@cs.cmu.edu, Tyler Hicks <code@tyhicks.com>,
	 Gao Xiang <xiang@kernel.org>, Chao Yu <chao@kernel.org>,
	 Yue Hu <huyue2@coolpad.com>,
	Jeffle Xu <jefflexu@linux.alibaba.com>,
	 Namjae Jeon <linkinjeon@kernel.org>,
	Sungjong Seo <sj1557.seo@samsung.com>,  Jan Kara <jack@suse.com>,
	Theodore Ts'o <tytso@mit.edu>,
	 Andreas Dilger <adilger.kernel@dilger.ca>,
	Jaegeuk Kim <jaegeuk@kernel.org>,
	 OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	 Miklos Szeredi <miklos@szeredi.hu>,
	Bob Peterson <rpeterso@redhat.com>,
	 Andreas Gruenbacher <agruenba@redhat.com>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Tejun Heo <tj@kernel.org>,
	 Alexander Viro <viro@zeniv.linux.org.uk>,
	 Christian Brauner <brauner@kernel.org>,
	 Trond Myklebust <trond.myklebust@hammerspace.com>,
	 Anna Schumaker <anna@kernel.org>,
	 Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
	 Mark Fasheh <mark@fasheh.com>, Joel Becker <jlbec@evilplan.org>,
	 Joseph Qi <joseph.qi@linux.alibaba.com>,
	 Mike Marshall <hubcap@omnibond.com>,
	 Martin Brandenburg <martin@omnibond.com>,
	 Luis Chamberlain <mcgrof@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	 Iurii Zaikin <yzaikin@google.com>,
	Steve French <sfrench@samba.org>,
	 Paulo Alcantara <pc@manguebit.com>,
	Ronnie Sahlberg <lsahlber@redhat.com>,
	 Shyam Prasad N <sprasad@microsoft.com>,
	Tom Talpey <tom@talpey.com>,
	 Sergey Senozhatsky <senozhatsky@chromium.org>,
	 Richard Weinberger <richard@nod.at>,
	Hans de Goede <hdegoede@redhat.com>,
	 Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	 "Darrick J. Wong" <djwong@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>,
	Dave Chinner <david@fromorbit.com>,
	linux-mm@kvack.org, linux-mtd@lists.infradead.org,
	linux-afs@lists.infradead.org, linux-cifs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, cluster-devel@redhat.com,
	linux-ext4@vger.kernel.org, devel@lists.orangefs.org,
	ecryptfs@vger.kernel.org, ocfs2-devel@lists.linux.dev,
	ceph-devel@vger.kernel.org, linux-nfs@vger.kernel.org,
	v9fs@lists.linux.dev, samba-technical@lists.samba.org,
	linux-kernel@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net,
	linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	ntfs3@lists.linux.dev, linux-erofs@lists.ozlabs.org,
	linux-btrfs@vger.kernel.org
Subject: [f2fs-dev] [PATCH v5 3/8] tmpfs: bump the mtime/ctime/iversion when page becomes writeable
Date: Thu, 13 Jul 2023 19:00:52 -0400	[thread overview]
Message-ID: <20230713-mgctime-v5-3-9eb795d2ae37@kernel.org> (raw)
In-Reply-To: <20230713-mgctime-v5-0-9eb795d2ae37@kernel.org>

Most filesystems that use the pagecache will update the mtime, ctime,
and change attribute when a page becomes writeable. Add a page_mkwrite
operation for tmpfs and just use it to bump the mtime, ctime and change
attribute.

This fixes xfstest generic/080 on tmpfs.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 mm/shmem.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/mm/shmem.c b/mm/shmem.c
index b154af49d2df..654d9a585820 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2169,6 +2169,16 @@ static vm_fault_t shmem_fault(struct vm_fault *vmf)
 	return ret;
 }
 
+static vm_fault_t shmem_page_mkwrite(struct vm_fault *vmf)
+{
+	struct vm_area_struct *vma = vmf->vma;
+	struct inode *inode = file_inode(vma->vm_file);
+
+	file_update_time(vma->vm_file);
+	inode_inc_iversion(inode);
+	return 0;
+}
+
 unsigned long shmem_get_unmapped_area(struct file *file,
 				      unsigned long uaddr, unsigned long len,
 				      unsigned long pgoff, unsigned long flags)
@@ -4210,6 +4220,7 @@ static const struct super_operations shmem_ops = {
 
 static const struct vm_operations_struct shmem_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,
@@ -4219,6 +4230,7 @@ static const struct vm_operations_struct shmem_vm_ops = {
 
 static const struct vm_operations_struct shmem_anon_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,

-- 
2.41.0



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

WARNING: multiple messages have this Message-ID (diff)
From: Jeff Layton <jlayton@kernel.org>
To: Eric Van Hensbergen <ericvh@kernel.org>,
	 Latchesar Ionkov <lucho@ionkov.net>,
	 Dominique Martinet <asmadeus@codewreck.org>,
	 Christian Schoenebeck <linux_oss@crudebyte.com>,
	 David Howells <dhowells@redhat.com>,
	Marc Dionne <marc.dionne@auristor.com>,  Chris Mason <clm@fb.com>,
	Josef Bacik <josef@toxicpanda.com>,
	 David Sterba <dsterba@suse.com>, Xiubo Li <xiubli@redhat.com>,
	 Ilya Dryomov <idryomov@gmail.com>,
	Jan Harkes <jaharkes@cs.cmu.edu>,
	 coda@cs.cmu.edu, Tyler Hicks <code@tyhicks.com>,
	 Gao Xiang <xiang@kernel.org>, Chao Yu <chao@kernel.org>,
	 Yue Hu <huyue2@coolpad.com>,
	Jeffle Xu <jefflexu@linux.alibaba.com>,
	 Namjae Jeon <linkinjeon@kernel.org>,
	Sungjong Seo <sj1557.seo@samsung.com>,  Jan Kara <jack@suse.com>,
	Theodore Ts'o <tytso@mit.edu>,
	 Andreas Dilger <adilger.kernel@dilger.ca>,
	Jaegeuk Kim <jaegeuk@kernel.org>,
	 OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	 Miklos Szeredi <miklos@szeredi.hu>,
	Bob Peterson <rpeterso@redhat.com>,
	 Andreas Gruenbacher <agruenba@redhat.com>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Tejun Heo <tj@kernel.org>,
	 Alexander Viro <viro@zeniv.linux.org.uk>,
	 Christian Brauner <brauner@kernel.org>,
	 Trond Myklebust <trond.myklebust@hammerspace.com>,
	 Anna Schumaker <anna@kernel.org>,
	 Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
	 Mark Fasheh <mark@fasheh.com>, Joel Becker <jlbec@evilplan.org>,
	 Joseph Qi <joseph.qi@linux.alibaba.com>,
	 Mike Marshall <hubcap@omnibond.com>,
	 Martin Brandenburg <martin@omnibond.com>,
	 Luis Chamberlain <mcgrof@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	 Iurii Zaikin <yzaikin@google.com>,
	Steve French <sfrench@samba.org>,
	 Paulo Alcantara <pc@manguebit.com>,
	Ronnie Sahlberg <lsahlber@redhat.com>,
	 Shyam Prasad N <sprasad@microsoft.com>,
	Tom Talpey <tom@talpey.com>,
	 Sergey Senozhatsky <senozhatsky@chromium.org>,
	 Richard Weinberger <richard@nod.at>,
	Hans de Goede <hdegoede@redhat.com>,
	 Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	 "Darrick J. Wong" <djwong@kernel.org>
Cc: Dave Chinner <david@fromorbit.com>,
	v9fs@lists.linux.dev,  linux-kernel@vger.kernel.org,
	linux-afs@lists.infradead.org,  linux-btrfs@vger.kernel.org,
	ceph-devel@vger.kernel.org,  codalist@coda.cs.cmu.edu,
	ecryptfs@vger.kernel.org,  linux-erofs@lists.ozlabs.org,
	linux-fsdevel@vger.kernel.org,  linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net,
	 cluster-devel@redhat.com, linux-nfs@vger.kernel.org,
	ntfs3@lists.linux.dev,  ocfs2-devel@lists.linux.dev,
	devel@lists.orangefs.org,  linux-cifs@vger.kernel.org,
	samba-technical@lists.samba.org,  linux-mtd@lists.infradead.org,
	linux-mm@kvack.org,  linux-xfs@vger.kernel.org,
	Jeff Layton <jlayton@kernel.org>
Subject: [PATCH v5 3/8] tmpfs: bump the mtime/ctime/iversion when page becomes writeable
Date: Thu, 13 Jul 2023 19:00:52 -0400	[thread overview]
Message-ID: <20230713-mgctime-v5-3-9eb795d2ae37@kernel.org> (raw)
In-Reply-To: <20230713-mgctime-v5-0-9eb795d2ae37@kernel.org>

Most filesystems that use the pagecache will update the mtime, ctime,
and change attribute when a page becomes writeable. Add a page_mkwrite
operation for tmpfs and just use it to bump the mtime, ctime and change
attribute.

This fixes xfstest generic/080 on tmpfs.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 mm/shmem.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/mm/shmem.c b/mm/shmem.c
index b154af49d2df..654d9a585820 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2169,6 +2169,16 @@ static vm_fault_t shmem_fault(struct vm_fault *vmf)
 	return ret;
 }
 
+static vm_fault_t shmem_page_mkwrite(struct vm_fault *vmf)
+{
+	struct vm_area_struct *vma = vmf->vma;
+	struct inode *inode = file_inode(vma->vm_file);
+
+	file_update_time(vma->vm_file);
+	inode_inc_iversion(inode);
+	return 0;
+}
+
 unsigned long shmem_get_unmapped_area(struct file *file,
 				      unsigned long uaddr, unsigned long len,
 				      unsigned long pgoff, unsigned long flags)
@@ -4210,6 +4220,7 @@ static const struct super_operations shmem_ops = {
 
 static const struct vm_operations_struct shmem_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,
@@ -4219,6 +4230,7 @@ static const struct vm_operations_struct shmem_vm_ops = {
 
 static const struct vm_operations_struct shmem_anon_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,

-- 
2.41.0


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Jeff Layton <jlayton@kernel.org>
To: Eric Van Hensbergen <ericvh@kernel.org>,
	 Latchesar Ionkov <lucho@ionkov.net>,
	 Dominique Martinet <asmadeus@codewreck.org>,
	 Christian Schoenebeck <linux_oss@crudebyte.com>,
	 David Howells <dhowells@redhat.com>,
	Marc Dionne <marc.dionne@auristor.com>,  Chris Mason <clm@fb.com>,
	Josef Bacik <josef@toxicpanda.com>,
	 David Sterba <dsterba@suse.com>, Xiubo Li <xiubli@redhat.com>,
	 Ilya Dryomov <idryomov@gmail.com>,
	Jan Harkes <jaharkes@cs.cmu.edu>,
	 coda@cs.cmu.edu, Tyler Hicks <code@tyhicks.com>,
	 Gao Xiang <xiang@kernel.org>, Chao Yu <chao@kernel.org>,
	 Yue Hu <huyue2@coolpad.com>,
	Jeffle Xu <jefflexu@linux.alibaba.com>,
	 Namjae Jeon <linkinjeon@kernel.org>,
	Sungjong Seo <sj1557.seo@samsung.com>,  Jan Kara <jack@suse.com>,
	Theodore Ts'o <tytso@mit.edu>,
	 Andreas Dilger <adilger.kernel@dilger.ca>,
	Jaegeuk Kim <jaegeuk@kernel.org>,
	 OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	 Miklos Szeredi <miklos@szeredi.hu>,
	Bob Peterson <rpeterso@redhat.com>,
	 Andreas Gruenbacher <agruenba@redhat.com>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Tejun Heo <tj@kernel.org>,
	 Alexander Viro <viro@zeniv.linux.org.uk>,
	 Christian Brauner <brauner@kernel.org>,
	 Trond Myklebust <trond.myklebust@hammerspace.com>,
	 Anna Schumaker <anna@kernel.org>,
	 Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
	 Mark Fasheh <mark@fasheh.com>, Joel Becker <jlbec@evilplan.org>,
	 Joseph Qi <joseph.qi@linux.alibaba.com>,
	 Mike Marshall <hubcap@omnibond.com>,
	 Martin Brandenburg <martin@omnibond.com>,
	 Luis Chamberlain <mcgrof@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	 Iurii Zaikin <yzaikin@google.com>,
	Steve French <sfrench@samba.org>,
	 Paulo Alcantara <pc@manguebit.com>,
	Ronnie Sahlberg <lsahlber@redhat.com>,
	 Shyam Prasad N <sprasad@microsoft.com>,
	Tom Talpey <tom@talpey.com>,
	 Sergey Senozhatsky <senozhatsky@chromium.org>,
	 Richard Weinberger <richard@nod.at>,
	Hans de Goede <hdegoede@redhat.com>,
	 Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	 "Darrick J. Wong" <djwong@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>,
	Dave Chinner <david@fromorbit.com>,
	linux-mm@kvack.org, linux-mtd@lists.infradead.org,
	linux-afs@lists.infradead.org, linux-cifs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, cluster-devel@redhat.com,
	linux-ext4@vger.kernel.org, devel@lists.orangefs.org,
	ecryptfs@vger.kernel.org, ocfs2-devel@lists.linux.dev,
	ceph-devel@vger.kernel.org, linux-nfs@vger.kernel.org,
	v9fs@lists.linux.dev, samba-technical@lists.samba.org,
	linux-kernel@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net,
	linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	ntfs3@lists.linux.dev, linux-erofs@lists.ozlabs.org,
	linux-btrfs@vger.kernel.org
Subject: [PATCH v5 3/8] tmpfs: bump the mtime/ctime/iversion when page becomes writeable
Date: Thu, 13 Jul 2023 19:00:52 -0400	[thread overview]
Message-ID: <20230713-mgctime-v5-3-9eb795d2ae37@kernel.org> (raw)
In-Reply-To: <20230713-mgctime-v5-0-9eb795d2ae37@kernel.org>

Most filesystems that use the pagecache will update the mtime, ctime,
and change attribute when a page becomes writeable. Add a page_mkwrite
operation for tmpfs and just use it to bump the mtime, ctime and change
attribute.

This fixes xfstest generic/080 on tmpfs.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 mm/shmem.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/mm/shmem.c b/mm/shmem.c
index b154af49d2df..654d9a585820 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2169,6 +2169,16 @@ static vm_fault_t shmem_fault(struct vm_fault *vmf)
 	return ret;
 }
 
+static vm_fault_t shmem_page_mkwrite(struct vm_fault *vmf)
+{
+	struct vm_area_struct *vma = vmf->vma;
+	struct inode *inode = file_inode(vma->vm_file);
+
+	file_update_time(vma->vm_file);
+	inode_inc_iversion(inode);
+	return 0;
+}
+
 unsigned long shmem_get_unmapped_area(struct file *file,
 				      unsigned long uaddr, unsigned long len,
 				      unsigned long pgoff, unsigned long flags)
@@ -4210,6 +4220,7 @@ static const struct super_operations shmem_ops = {
 
 static const struct vm_operations_struct shmem_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,
@@ -4219,6 +4230,7 @@ static const struct vm_operations_struct shmem_vm_ops = {
 
 static const struct vm_operations_struct shmem_anon_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,

-- 
2.41.0


WARNING: multiple messages have this Message-ID (diff)
From: Jeff Layton <jlayton@kernel.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH v5 3/8] tmpfs: bump the mtime/ctime/iversion when page becomes writeable
Date: Thu, 13 Jul 2023 19:00:52 -0400	[thread overview]
Message-ID: <20230713-mgctime-v5-3-9eb795d2ae37@kernel.org> (raw)
In-Reply-To: <20230713-mgctime-v5-0-9eb795d2ae37@kernel.org>

Most filesystems that use the pagecache will update the mtime, ctime,
and change attribute when a page becomes writeable. Add a page_mkwrite
operation for tmpfs and just use it to bump the mtime, ctime and change
attribute.

This fixes xfstest generic/080 on tmpfs.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 mm/shmem.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/mm/shmem.c b/mm/shmem.c
index b154af49d2df..654d9a585820 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2169,6 +2169,16 @@ static vm_fault_t shmem_fault(struct vm_fault *vmf)
 	return ret;
 }
 
+static vm_fault_t shmem_page_mkwrite(struct vm_fault *vmf)
+{
+	struct vm_area_struct *vma = vmf->vma;
+	struct inode *inode = file_inode(vma->vm_file);
+
+	file_update_time(vma->vm_file);
+	inode_inc_iversion(inode);
+	return 0;
+}
+
 unsigned long shmem_get_unmapped_area(struct file *file,
 				      unsigned long uaddr, unsigned long len,
 				      unsigned long pgoff, unsigned long flags)
@@ -4210,6 +4220,7 @@ static const struct super_operations shmem_ops = {
 
 static const struct vm_operations_struct shmem_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,
@@ -4219,6 +4230,7 @@ static const struct vm_operations_struct shmem_vm_ops = {
 
 static const struct vm_operations_struct shmem_anon_vm_ops = {
 	.fault		= shmem_fault,
+	.page_mkwrite	= shmem_page_mkwrite,
 	.map_pages	= filemap_map_pages,
 #ifdef CONFIG_NUMA
 	.set_policy     = shmem_set_policy,

-- 
2.41.0


  parent reply	other threads:[~2023-07-13 23:01 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-13 23:00 [PATCH v5 0/8] fs: implement multigrain timestamps Jeff Layton
2023-07-13 23:00 ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00 ` Jeff Layton
2023-07-13 23:00 ` Jeff Layton
2023-07-13 23:00 ` [f2fs-dev] " Jeff Layton
2023-07-13 23:00 ` [PATCH v5 1/8] fs: pass the request_mask to generic_fillattr Jeff Layton
2023-07-13 23:00   ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton
2023-07-13 23:00 ` [PATCH v5 2/8] fs: add infrastructure for multigrain timestamps Jeff Layton
2023-07-13 23:00   ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton
2023-07-13 23:00 ` Jeff Layton [this message]
2023-07-13 23:00   ` [Cluster-devel] [PATCH v5 3/8] tmpfs: bump the mtime/ctime/iversion when page becomes writeable Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton
2023-07-13 23:00 ` [PATCH v5 4/8] tmpfs: add support for multigrain timestamps Jeff Layton
2023-07-13 23:00   ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton
2023-07-13 23:00 ` [PATCH v5 5/8] xfs: XFS_ICHGTIME_CREATE is unused Jeff Layton
2023-07-13 23:00   ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton
2023-07-13 23:53   ` Anthony Iliopoulos
2023-07-14  0:15     ` Jeff Layton
2023-07-14  6:35       ` Darrick J. Wong
2023-07-14 10:53         ` Jeff Layton
2023-07-14 14:16           ` Darrick J. Wong
2023-07-14 14:30             ` Jeff Layton
2023-07-13 23:00 ` [PATCH v5 6/8] xfs: switch to multigrain timestamps Jeff Layton
2023-07-13 23:00   ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton
2023-07-19  1:35   ` Dave Chinner
2023-07-19  1:35     ` [Cluster-devel] " Dave Chinner
2023-07-19  1:35     ` Dave Chinner
2023-07-19  1:35     ` [f2fs-dev] " Dave Chinner via Linux-f2fs-devel
2023-07-19  1:35     ` Dave Chinner via Linux-erofs
2023-07-13 23:00 ` [PATCH v5 7/8] ext4: " Jeff Layton
2023-07-13 23:00   ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton
2023-07-13 23:00 ` [PATCH v5 8/8] btrfs: convert " Jeff Layton
2023-07-13 23:00   ` [Cluster-devel] " Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` Jeff Layton
2023-07-13 23:00   ` [f2fs-dev] " Jeff Layton

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=20230713-mgctime-v5-3-9eb795d2ae37@kernel.org \
    --to=jlayton@kernel.org \
    --cc=adilger.kernel@dilger.ca \
    --cc=agruenba@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=almaz.alexandrovich@paragon-software.com \
    --cc=anna@kernel.org \
    --cc=asmadeus@codewreck.org \
    --cc=brauner@kernel.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=chao@kernel.org \
    --cc=clm@fb.com \
    --cc=cluster-devel@redhat.com \
    --cc=coda@cs.cmu.edu \
    --cc=codalist@coda.cs.cmu.edu \
    --cc=code@tyhicks.com \
    --cc=david@fromorbit.com \
    --cc=devel@lists.orangefs.org \
    --cc=dhowells@redhat.com \
    --cc=djwong@kernel.org \
    --cc=dsterba@suse.com \
    --cc=ecryptfs@vger.kernel.org \
    --cc=ericvh@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=hirofumi@mail.parknet.co.jp \
    --cc=hubcap@omnibond.com \
    --cc=hughd@google.com \
    --cc=huyue2@coolpad.com \
    --cc=idryomov@gmail.com \
    --cc=jack@suse.com \
    --cc=jaegeuk@kernel.org \
    --cc=jaharkes@cs.cmu.edu \
    --cc=jefflexu@linux.alibaba.com \
    --cc=jlbec@evilplan.org \
    --cc=josef@toxicpanda.com \
    --cc=joseph.qi@linux.alibaba.com \
    --cc=keescook@chromium.org \
    --cc=linkinjeon@kernel.org \
    --cc=linux-afs@lists.infradead.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=linux_oss@crudebyte.com \
    --cc=lsahlber@redhat.com \
    --cc=lucho@ionkov.net \
    --cc=marc.dionne@auristor.com \
    --cc=mark@fasheh.com \
    --cc=martin@omnibond.com \
    --cc=mcgrof@kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=ntfs3@lists.linux.dev \
    --cc=ocfs2-devel@lists.linux.dev \
    --cc=pc@manguebit.com \
    --cc=richard@nod.at \
    --cc=rpeterso@redhat.com \
    --cc=samba-technical@lists.samba.org \
    --cc=senozhatsky@chromium.org \
    --cc=sfrench@samba.org \
    --cc=sj1557.seo@samsung.com \
    --cc=sprasad@microsoft.com \
    --cc=tj@kernel.org \
    --cc=tom@talpey.com \
    --cc=trond.myklebust@hammerspace.com \
    --cc=tytso@mit.edu \
    --cc=v9fs@lists.linux.dev \
    --cc=viro@zeniv.linux.org.uk \
    --cc=xiang@kernel.org \
    --cc=xiubli@redhat.com \
    --cc=yzaikin@google.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.