All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: Christian Brauner <brauner@kernel.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Eric Biederman <ebiederm@xmission.com>,
	Kees Cook <keescook@chromium.org>
Cc: Jan Kara <jack@suse.cz>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: [PATCH 12/79] fs: switch to new ctime accessors
Date: Wed, 21 Jun 2023 10:45:25 -0400	[thread overview]
Message-ID: <20230621144735.55953-11-jlayton@kernel.org> (raw)
In-Reply-To: <20230621144735.55953-1-jlayton@kernel.org>

In later patches, we're going to change how the ctime.tv_nsec field is
utilized. Switch to using accessor functions instead of raw accesses of
inode->i_ctime.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/attr.c                |  2 +-
 fs/bad_inode.c           |  3 +--
 fs/binfmt_misc.c         |  3 +--
 fs/inode.c               | 12 ++++++++----
 fs/libfs.c               | 32 +++++++++++++++++---------------
 fs/nsfs.c                |  2 +-
 fs/pipe.c                |  2 +-
 fs/posix_acl.c           |  2 +-
 fs/stack.c               |  2 +-
 fs/stat.c                |  2 +-
 include/linux/fs_stack.h |  2 +-
 11 files changed, 34 insertions(+), 30 deletions(-)

diff --git a/fs/attr.c b/fs/attr.c
index d60dc1edb526..2750e5f98dfb 100644
--- a/fs/attr.c
+++ b/fs/attr.c
@@ -312,7 +312,7 @@ void setattr_copy(struct mnt_idmap *idmap, struct inode *inode,
 	if (ia_valid & ATTR_MTIME)
 		inode->i_mtime = attr->ia_mtime;
 	if (ia_valid & ATTR_CTIME)
-		inode->i_ctime = attr->ia_ctime;
+		inode_ctime_set(inode, attr->ia_ctime);
 	if (ia_valid & ATTR_MODE) {
 		umode_t mode = attr->ia_mode;
 		if (!in_group_or_capable(idmap, inode,
diff --git a/fs/bad_inode.c b/fs/bad_inode.c
index db649487d58c..bd3762e1b670 100644
--- a/fs/bad_inode.c
+++ b/fs/bad_inode.c
@@ -209,8 +209,7 @@ void make_bad_inode(struct inode *inode)
 	remove_inode_hash(inode);
 
 	inode->i_mode = S_IFREG;
-	inode->i_atime = inode->i_mtime = inode->i_ctime =
-		current_time(inode);
+	inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode);
 	inode->i_op = &bad_inode_ops;	
 	inode->i_opflags &= ~IOP_XATTR;
 	inode->i_fop = &bad_file_ops;	
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index bb202ad369d5..6af92eb1b871 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -547,8 +547,7 @@ static struct inode *bm_get_inode(struct super_block *sb, int mode)
 	if (inode) {
 		inode->i_ino = get_next_ino();
 		inode->i_mode = mode;
-		inode->i_atime = inode->i_mtime = inode->i_ctime =
-			current_time(inode);
+		inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode);
 	}
 	return inode;
 }
diff --git a/fs/inode.c b/fs/inode.c
index c005e7328fbb..a7f484e9e7c1 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1851,6 +1851,7 @@ EXPORT_SYMBOL(bmap);
 static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
 			     struct timespec64 now)
 {
+	struct timespec64 ctime;
 
 	if (!(mnt->mnt_flags & MNT_RELATIME))
 		return 1;
@@ -1862,7 +1863,8 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
 	/*
 	 * Is ctime younger than or equal to atime? If yes, update atime:
 	 */
-	if (timespec64_compare(&inode->i_ctime, &inode->i_atime) >= 0)
+	ctime = inode_ctime_peek(inode);
+	if (timespec64_compare(&ctime, &inode->i_atime) >= 0)
 		return 1;
 
 	/*
@@ -1885,7 +1887,7 @@ int generic_update_time(struct inode *inode, struct timespec64 *time, int flags)
 		if (flags & S_ATIME)
 			inode->i_atime = *time;
 		if (flags & S_CTIME)
-			inode->i_ctime = *time;
+			inode_ctime_set(inode, *time);
 		if (flags & S_MTIME)
 			inode->i_mtime = *time;
 
@@ -2071,6 +2073,7 @@ EXPORT_SYMBOL(file_remove_privs);
 static int inode_needs_update_time(struct inode *inode, struct timespec64 *now)
 {
 	int sync_it = 0;
+	struct timespec64 ctime;
 
 	/* First try to exhaust all avenues to not sync */
 	if (IS_NOCMTIME(inode))
@@ -2079,7 +2082,8 @@ static int inode_needs_update_time(struct inode *inode, struct timespec64 *now)
 	if (!timespec64_equal(&inode->i_mtime, now))
 		sync_it = S_MTIME;
 
-	if (!timespec64_equal(&inode->i_ctime, now))
+	ctime = inode_ctime_peek(inode);
+	if (!timespec64_equal(&ctime, now))
 		sync_it |= S_CTIME;
 
 	if (IS_I_VERSION(inode) && inode_iversion_need_inc(inode))
@@ -2510,7 +2514,7 @@ struct timespec64 inode_ctime_set_current(struct inode *inode)
 {
 	struct timespec64 now = current_time(inode);
 
-	inode_set_ctime(inode, now);
+	inode_ctime_set(inode, now);
 	return now;
 }
 EXPORT_SYMBOL(inode_ctime_set_current);
diff --git a/fs/libfs.c b/fs/libfs.c
index 5b851315eeed..4a914f09fa87 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -275,7 +275,7 @@ void simple_recursive_removal(struct dentry *dentry,
 		while ((child = find_next_child(this, victim)) == NULL) {
 			// kill and ascend
 			// update metadata while it's still locked
-			inode->i_ctime = current_time(inode);
+			inode_ctime_set_current(inode);
 			clear_nlink(inode);
 			inode_unlock(inode);
 			victim = this;
@@ -293,8 +293,7 @@ void simple_recursive_removal(struct dentry *dentry,
 				dput(victim);		// unpin it
 			}
 			if (victim == dentry) {
-				inode->i_ctime = inode->i_mtime =
-					current_time(inode);
+				inode->i_mtime = inode_ctime_set_current(inode);
 				if (d_is_dir(dentry))
 					drop_nlink(inode);
 				inode_unlock(inode);
@@ -335,7 +334,7 @@ static int pseudo_fs_fill_super(struct super_block *s, struct fs_context *fc)
 	 */
 	root->i_ino = 1;
 	root->i_mode = S_IFDIR | S_IRUSR | S_IWUSR;
-	root->i_atime = root->i_mtime = root->i_ctime = current_time(root);
+	root->i_atime = root->i_mtime = inode_ctime_set_current(root);
 	s->s_root = d_make_root(root);
 	if (!s->s_root)
 		return -ENOMEM;
@@ -391,7 +390,8 @@ int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *den
 {
 	struct inode *inode = d_inode(old_dentry);
 
-	inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(inode);
+	inode_ctime_set_current(inode);
+	inode->i_mtime = inode_ctime_set_current(dir);
 	inc_nlink(inode);
 	ihold(inode);
 	dget(dentry);
@@ -425,7 +425,8 @@ int simple_unlink(struct inode *dir, struct dentry *dentry)
 {
 	struct inode *inode = d_inode(dentry);
 
-	inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(inode);
+	inode_ctime_set_current(inode);
+	dir->i_mtime = inode_ctime_set_current(dir);
 	drop_nlink(inode);
 	dput(dentry);
 	return 0;
@@ -459,10 +460,10 @@ int simple_rename_exchange(struct inode *old_dir, struct dentry *old_dentry,
 			inc_nlink(old_dir);
 		}
 	}
-	old_dir->i_ctime = old_dir->i_mtime =
-	new_dir->i_ctime = new_dir->i_mtime =
-	d_inode(old_dentry)->i_ctime =
-	d_inode(new_dentry)->i_ctime = current_time(old_dir);
+	old_dir->i_mtime = inode_ctime_set_current(old_dir);
+	new_dir->i_mtime = inode_ctime_set_current(new_dir);
+	inode_ctime_set_current(d_inode(old_dentry));
+	inode_ctime_set_current(d_inode(new_dentry));
 
 	return 0;
 }
@@ -495,8 +496,9 @@ int simple_rename(struct mnt_idmap *idmap, struct inode *old_dir,
 		inc_nlink(new_dir);
 	}
 
-	old_dir->i_ctime = old_dir->i_mtime = new_dir->i_ctime =
-		new_dir->i_mtime = inode->i_ctime = current_time(old_dir);
+	old_dir->i_mtime = inode_ctime_set_current(old_dir);
+	new_dir->i_mtime = inode_ctime_set_current(new_dir);
+	inode_ctime_set_current(inode);
 
 	return 0;
 }
@@ -659,7 +661,7 @@ int simple_fill_super(struct super_block *s, unsigned long magic,
 	 */
 	inode->i_ino = 1;
 	inode->i_mode = S_IFDIR | 0755;
-	inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
+	inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode);
 	inode->i_op = &simple_dir_inode_operations;
 	inode->i_fop = &simple_dir_operations;
 	set_nlink(inode, 2);
@@ -685,7 +687,7 @@ int simple_fill_super(struct super_block *s, unsigned long magic,
 			goto out;
 		}
 		inode->i_mode = S_IFREG | files->mode;
-		inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
+		inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode);
 		inode->i_fop = files->ops;
 		inode->i_ino = i;
 		d_add(dentry, inode);
@@ -1253,7 +1255,7 @@ struct inode *alloc_anon_inode(struct super_block *s)
 	inode->i_uid = current_fsuid();
 	inode->i_gid = current_fsgid();
 	inode->i_flags |= S_PRIVATE;
-	inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
+	inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode);
 	return inode;
 }
 EXPORT_SYMBOL(alloc_anon_inode);
diff --git a/fs/nsfs.c b/fs/nsfs.c
index f602a96a1afe..c052cc55eacd 100644
--- a/fs/nsfs.c
+++ b/fs/nsfs.c
@@ -84,7 +84,7 @@ static int __ns_get_path(struct path *path, struct ns_common *ns)
 		return -ENOMEM;
 	}
 	inode->i_ino = ns->inum;
-	inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
+	inode->i_mtime = inode->i_atime = inode_ctime_set_current(inode);
 	inode->i_flags |= S_IMMUTABLE;
 	inode->i_mode = S_IFREG | S_IRUGO;
 	inode->i_fop = &ns_file_operations;
diff --git a/fs/pipe.c b/fs/pipe.c
index 2d88f73f585a..bb90b6fc4a96 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -899,7 +899,7 @@ static struct inode * get_pipe_inode(void)
 	inode->i_mode = S_IFIFO | S_IRUSR | S_IWUSR;
 	inode->i_uid = current_fsuid();
 	inode->i_gid = current_fsgid();
-	inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
+	inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode);
 
 	return inode;
 
diff --git a/fs/posix_acl.c b/fs/posix_acl.c
index 7fa1b738bbab..cc9c390fd2af 100644
--- a/fs/posix_acl.c
+++ b/fs/posix_acl.c
@@ -1027,7 +1027,7 @@ int simple_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
 			return error;
 	}
 
-	inode->i_ctime = current_time(inode);
+	inode_ctime_set_current(inode);
 	if (IS_I_VERSION(inode))
 		inode_inc_iversion(inode);
 	set_cached_acl(inode, type, acl);
diff --git a/fs/stack.c b/fs/stack.c
index c9830924eb12..efd0de85bace 100644
--- a/fs/stack.c
+++ b/fs/stack.c
@@ -68,7 +68,7 @@ void fsstack_copy_attr_all(struct inode *dest, const struct inode *src)
 	dest->i_rdev = src->i_rdev;
 	dest->i_atime = src->i_atime;
 	dest->i_mtime = src->i_mtime;
-	dest->i_ctime = src->i_ctime;
+	inode_ctime_set(dest, inode_ctime_peek(src));
 	dest->i_blkbits = src->i_blkbits;
 	dest->i_flags = src->i_flags;
 	set_nlink(dest, src->i_nlink);
diff --git a/fs/stat.c b/fs/stat.c
index 7c238da22ef0..5d87e34d6dd5 100644
--- a/fs/stat.c
+++ b/fs/stat.c
@@ -58,7 +58,7 @@ void generic_fillattr(struct mnt_idmap *idmap, struct inode *inode,
 	stat->size = i_size_read(inode);
 	stat->atime = inode->i_atime;
 	stat->mtime = inode->i_mtime;
-	stat->ctime = inode->i_ctime;
+	stat->ctime = inode_ctime_peek(inode);
 	stat->blksize = i_blocksize(inode);
 	stat->blocks = inode->i_blocks;
 }
diff --git a/include/linux/fs_stack.h b/include/linux/fs_stack.h
index 54210a42c30d..1488a118fe91 100644
--- a/include/linux/fs_stack.h
+++ b/include/linux/fs_stack.h
@@ -24,7 +24,7 @@ static inline void fsstack_copy_attr_times(struct inode *dest,
 {
 	dest->i_atime = src->i_atime;
 	dest->i_mtime = src->i_mtime;
-	dest->i_ctime = src->i_ctime;
+	inode_ctime_set(dest, inode_ctime_peek(src));
 }
 
 #endif /* _LINUX_FS_STACK_H */
-- 
2.41.0


  parent reply	other threads:[~2023-06-21 14:49 UTC|newest]

Thread overview: 229+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-21 14:45 [PATCH 00/79] fs: new accessors for inode->i_ctime Jeff Layton
2023-06-21 14:45 ` [Cluster-devel] " Jeff Layton
2023-06-21 14:45 ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 14:45 ` [f2fs-dev] " Jeff Layton
2023-06-21 14:45 ` [PATCH 01/79] fs: add ctime accessors infrastructure Jeff Layton
2023-06-21 14:45   ` [Cluster-devel] " Jeff Layton
2023-06-21 14:45   ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 14:45   ` [f2fs-dev] " Jeff Layton
2023-06-21 16:34   ` Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-21 16:34     ` [Cluster-devel] " Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-21 16:34     ` [Ocfs2-devel] " Jan Kara via Ocfs2-devel
2023-06-21 16:34     ` [f2fs-dev] " Jan Kara
2023-06-21 17:29   ` Tom Talpey
2023-06-21 17:29     ` [Cluster-devel] " Tom Talpey
2023-06-21 17:29     ` [f2fs-dev] " Tom Talpey
2023-06-21 17:29     ` [Ocfs2-devel] " Tom Talpey via Ocfs2-devel
2023-06-21 18:01     ` Jeff Layton
2023-06-21 18:01       ` [Cluster-devel] " Jeff Layton
2023-06-21 18:01       ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 18:01       ` [f2fs-dev] " Jeff Layton
2023-06-21 18:19       ` Tom Talpey
2023-06-21 18:19         ` [Cluster-devel] " Tom Talpey
2023-06-21 18:19         ` [Ocfs2-devel] " Tom Talpey via Ocfs2-devel
2023-06-21 18:19         ` [f2fs-dev] " Tom Talpey
2023-06-21 18:48         ` Jeff Layton
2023-06-21 18:48           ` [Cluster-devel] " Jeff Layton
2023-06-21 18:48           ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 18:48           ` [f2fs-dev] " Jeff Layton
2023-06-22  0:46   ` Damien Le Moal
2023-06-22  0:46     ` [Cluster-devel] " Damien Le Moal
2023-06-22  0:46     ` [Ocfs2-devel] " Damien Le Moal via Ocfs2-devel
2023-06-22  0:46     ` [f2fs-dev] " Damien Le Moal
2023-06-22 10:14     ` Jeff Layton
2023-06-22 10:14       ` [Cluster-devel] " Jeff Layton
2023-06-22 10:14       ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-22 10:14       ` [f2fs-dev] " Jeff Layton
     [not found]     ` <99b3c749-23d9-6f09-fb75-6a84f3d1b066-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-06-22 10:14       ` Jeff Layton
2023-06-22 10:14     ` Jeff Layton
2023-06-30 22:12   ` Luis Chamberlain
2023-06-30 22:12     ` Luis Chamberlain
2023-06-30 22:12     ` [Cluster-devel] " Luis Chamberlain
2023-06-30 22:12     ` Luis Chamberlain
2023-06-30 22:12     ` Luis Chamberlain
2023-06-30 22:12     ` [f2fs-dev] " Luis Chamberlain
     [not found]   ` <20230621144507.55591-2-jlayton-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-07-12 15:31     ` Randy Dunlap
2023-07-12 15:31   ` Randy Dunlap
2023-07-12 15:31     ` [Cluster-devel] " Randy Dunlap
2023-07-12 15:31     ` Randy Dunlap
2023-07-12 15:31     ` Randy Dunlap
2023-07-12 15:34     ` Christian Brauner
2023-07-12 15:34       ` Christian Brauner
2023-07-12 15:31   ` Randy Dunlap
2023-06-21 14:45 ` [PATCH 02/79] spufs: switch to new ctime accessors Jeff Layton
2023-06-21 14:45   ` Jeff Layton
2023-06-21 14:45   ` [PATCH 03/79] s390: " Jeff Layton
2023-06-21 16:34     ` Jan Kara
2023-06-22 17:35     ` Alexander Gordeev
2023-06-22 17:51       ` Jeff Layton
2023-06-22 18:22         ` Alexander Gordeev
2023-06-22 18:46           ` Jeff Layton
2023-06-21 14:45   ` [PATCH 04/79] binderfs: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 16:35     ` Jan Kara
2023-06-21 14:45   ` [PATCH 05/79] qib_fs: " Jeff Layton
2023-06-21 16:35     ` Jan Kara
2023-06-21 19:37     ` Dennis Dalessandro
2023-06-21 14:45   ` [PATCH 06/79] ibm: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 16:35     ` Jan Kara
2023-06-21 14:45   ` [PATCH 07/79] usb: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 16:36     ` Jan Kara
2023-06-21 14:45   ` [PATCH 08/79] 9p: " Jeff Layton
2023-06-21 16:37     ` Jan Kara
2023-06-21 14:45   ` [PATCH 09/79] adfs: " Jeff Layton
2023-06-21 16:38     ` Jan Kara
2023-06-21 14:45   ` [PATCH 10/79] affs: " Jeff Layton
2023-06-21 16:39     ` Jan Kara
2023-06-22 11:37     ` David Sterba
2023-06-21 14:45   ` [PATCH 11/79] afs: " Jeff Layton
2023-06-21 16:43     ` Jan Kara
2023-06-21 14:45   ` Jeff Layton [this message]
2023-06-21 16:42     ` [PATCH 12/79] fs: " Jan Kara
2023-06-21 14:45   ` [PATCH 13/79] autofs: " Jeff Layton
2023-06-21 16:43     ` Jan Kara
2023-06-27  1:48     ` Ian Kent
2023-06-21 14:45   ` [PATCH 14/79] befs: " Jeff Layton
2023-06-21 16:44     ` Jan Kara
2023-06-21 14:45   ` [PATCH 15/79] bfs: " Jeff Layton
2023-06-21 16:48     ` Jan Kara
2023-06-21 16:57       ` Jeff Layton
2023-06-22 12:30         ` Jan Kara
2023-06-22 12:51           ` Jeff Layton
2023-06-22 14:57             ` Jan Kara
2023-06-23 12:33               ` Christian Brauner
2023-07-03 10:12                 ` Christian Brauner
2023-07-03 10:46                   ` Jeff Layton
2023-07-03 10:57                     ` Christian Brauner
2023-06-21 14:45   ` [PATCH 16/79] btrfs: " Jeff Layton
2023-06-22 11:42     ` David Sterba
2023-06-21 14:45   ` [PATCH 17/79] ceph: " Jeff Layton
2023-06-26  0:56     ` Xiubo Li
2023-06-21 14:45   ` [PATCH 18/79] coda: " Jeff Layton
2023-06-21 14:45   ` [PATCH 19/79] configfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 20/79] cramfs: " Jeff Layton
2023-06-21 15:29     ` Nicolas Pitre
2023-06-21 14:45   ` [PATCH 21/79] debugfs: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 14:45   ` [PATCH 22/79] devpts: " Jeff Layton
2023-06-21 14:45   ` [PATCH 23/79] ecryptfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 24/79] efivarfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 25/79] efs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 26/79] erofs: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-22  4:01     ` Gao Xiang
2023-06-22  4:01       ` Gao Xiang
2023-06-21 14:45   ` [PATCH 27/79] exfat: " Jeff Layton
2023-06-21 14:45   ` [PATCH 28/79] ext2: " Jeff Layton
2023-06-21 14:45   ` [PATCH 29/79] ext4: " Jeff Layton
2023-06-21 14:45   ` [f2fs-dev] [PATCH 30/79] f2fs: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-21 14:45   ` [PATCH 31/79] fat: " Jeff Layton
2023-06-21 14:45   ` [PATCH 32/79] freevxfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 33/79] fuse: " Jeff Layton
2023-06-21 14:45   ` [PATCH 34/79] gfs2: " Jeff Layton
2023-06-21 14:45     ` [Cluster-devel] " Jeff Layton
2023-06-21 14:45   ` [PATCH 35/79] hfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 36/79] hfsplus: " Jeff Layton
2023-06-21 14:45   ` [PATCH 37/79] hostfs: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-21 14:45   ` [PATCH 38/79] hpfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 39/79] hugetlbfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 40/79] isofs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 41/79] jffs2: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-21 14:45   ` [PATCH 42/79] jfs: " Jeff Layton
2023-06-21 17:47     ` Dave Kleikamp
2023-06-21 14:45   ` [PATCH 43/79] kernfs: " Jeff Layton
2023-06-21 15:30     ` Greg Kroah-Hartman
2023-06-21 14:45   ` [PATCH 44/79] minix: " Jeff Layton
2023-06-21 14:45   ` [PATCH 45/79] nfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 46/79] nfsd: " Jeff Layton
2023-06-21 17:36     ` Chuck Lever
2023-06-21 14:46   ` [PATCH 47/79] nilfs2: " Jeff Layton
2023-06-21 14:46     ` Jeff Layton
2023-06-26 15:26     ` Ryusuke Konishi
2023-06-26 15:26       ` Ryusuke Konishi
2023-06-21 14:46   ` [PATCH 48/79] ntfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 49/79] ntfs3: " Jeff Layton
2023-06-21 14:46   ` [Ocfs2-devel] [PATCH 50/79] ocfs2: " Jeff Layton via Ocfs2-devel
2023-06-21 14:46     ` Jeff Layton
2023-06-21 14:46   ` [PATCH 51/79] omfs: " Jeff Layton
2023-06-23 12:12     ` Bob Copeland
2023-06-21 14:46   ` [PATCH 52/79] openpromfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 53/79] orangefs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 54/79] overlayfs: " Jeff Layton
2023-06-22  6:44     ` Amir Goldstein
2023-06-21 14:46   ` [PATCH 55/79] proc: " Jeff Layton
2023-06-30 22:13     ` Luis Chamberlain
2023-06-21 14:46   ` [PATCH 56/79] pstore: " Jeff Layton
2023-06-21 17:50     ` Kees Cook
2023-06-21 14:46   ` [PATCH 57/79] qnx4: " Jeff Layton
2023-06-23 14:26     ` Anders Larsen
2023-06-21 14:46   ` [PATCH 58/79] qnx6: " Jeff Layton
2023-06-21 14:46   ` [PATCH 59/79] ramfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 60/79] reiserfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 61/79] romfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 62/79] smb: " Jeff Layton
2023-06-21 17:45     ` Tom Talpey
2023-06-23  5:03     ` Sergey Senozhatsky
2023-06-21 14:46   ` [PATCH 63/79] squashfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 64/79] sysv: " Jeff Layton
2023-06-21 14:46   ` [PATCH 65/79] tracefs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 66/79] ubifs: " Jeff Layton
2023-06-21 14:46     ` Jeff Layton
2023-06-21 14:46   ` [PATCH 67/79] udf: " Jeff Layton
2023-06-21 14:46   ` [PATCH 68/79] ufs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 69/79] vboxsf: " Jeff Layton
2023-06-21 14:46   ` [PATCH 70/79] xfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 71/79] zonefs: " Jeff Layton
2023-06-22  0:48     ` Damien Le Moal
2023-06-21 14:46   ` [PATCH 72/79] mqueue: " Jeff Layton
2023-06-21 14:46   ` [PATCH 73/79] bpf: " Jeff Layton
2023-06-21 14:46   ` [PATCH 74/79] shmem: " Jeff Layton
2023-06-21 14:46   ` [PATCH 75/79] rpc_pipefs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 76/79] apparmor: " Jeff Layton
2023-06-22  9:04     ` John Johansen
2023-06-21 14:46   ` [PATCH 77/79] security: " Jeff Layton
2023-06-23 14:15     ` Paul Moore
2023-06-21 14:46   ` [PATCH 78/79] selinux: " Jeff Layton
2023-06-23 14:17     ` Paul Moore
2023-06-21 16:34   ` [PATCH 02/79] spufs: " Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-22  0:19   ` Jeremy Kerr
2023-06-22  0:19     ` Jeremy Kerr
2023-06-21 14:49 ` [PATCH 79/79] fs: rename i_ctime field to __i_ctime Jeff Layton
2023-06-21 14:49   ` [Cluster-devel] " Jeff Layton
2023-06-21 14:49   ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 14:49   ` [f2fs-dev] " Jeff Layton
2023-06-21 19:21 ` [PATCH 00/79] fs: new accessors for inode->i_ctime Steven Rostedt
2023-06-21 19:21   ` Steven Rostedt
2023-06-21 19:21   ` [Cluster-devel] " Steven Rostedt
2023-06-21 19:21   ` Steven Rostedt
2023-06-21 19:21   ` Steven Rostedt
2023-06-21 19:21   ` [Ocfs2-devel] " Steven Rostedt via Ocfs2-devel
2023-06-21 19:21   ` [f2fs-dev] " Steven Rostedt
2023-06-21 19:52   ` Jeff Layton
2023-06-21 19:52     ` Jeff Layton
2023-06-21 19:52     ` [Cluster-devel] " Jeff Layton
2023-06-21 19:52     ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 19:52     ` Jeff Layton
2023-06-21 19:52     ` Jeff Layton
2023-06-21 19:52     ` [f2fs-dev] " Jeff Layton
2023-06-23 12:41     ` Christian Brauner
2023-06-23 12:41       ` Christian Brauner
2023-06-23 12:41       ` [Cluster-devel] " Christian Brauner
2023-06-23 12:41       ` Christian Brauner
2023-06-23 12:41       ` Christian Brauner
2023-06-23 12:41       ` [Ocfs2-devel] " Christian Brauner via Ocfs2-devel
2023-06-23 12:41       ` [f2fs-dev] " Christian Brauner
2023-06-30 22:11   ` Luis Chamberlain
2023-06-30 22:11     ` Luis Chamberlain
2023-06-30 22:11     ` [Cluster-devel] " Luis Chamberlain
2023-06-30 22:11     ` Luis Chamberlain
2023-06-30 22:11     ` Luis Chamberlain
2023-06-30 22:11     ` [f2fs-dev] " Luis Chamberlain

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=20230621144735.55953-11-jlayton@kernel.org \
    --to=jlayton@kernel.org \
    --cc=brauner@kernel.org \
    --cc=ebiederm@xmission.com \
    --cc=jack@suse.cz \
    --cc=keescook@chromium.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=viro@zeniv.linux.org.uk \
    /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.