From: Jeff Layton <jlayton@kernel.org>
To: Christian Brauner <brauner@kernel.org>,
"Darrick J. Wong" <djwong@kernel.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>, Jan Kara <jack@suse.cz>,
linux-xfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 70/79] xfs: switch to new ctime accessors
Date: Wed, 21 Jun 2023 10:46:23 -0400 [thread overview]
Message-ID: <20230621144735.55953-69-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/xfs/libxfs/xfs_inode_buf.c | 4 ++--
fs/xfs/libxfs/xfs_trans_inode.c | 2 +-
fs/xfs/xfs_acl.c | 2 +-
fs/xfs/xfs_bmap_util.c | 6 ++++--
fs/xfs/xfs_inode.c | 2 +-
fs/xfs/xfs_inode_item.c | 2 +-
fs/xfs/xfs_iops.c | 4 ++--
fs/xfs/xfs_itable.c | 4 ++--
8 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c
index 758aacd8166b..d5c1d3c86257 100644
--- a/fs/xfs/libxfs/xfs_inode_buf.c
+++ b/fs/xfs/libxfs/xfs_inode_buf.c
@@ -222,7 +222,7 @@ xfs_inode_from_disk(
*/
inode->i_atime = xfs_inode_from_disk_ts(from, from->di_atime);
inode->i_mtime = xfs_inode_from_disk_ts(from, from->di_mtime);
- inode->i_ctime = xfs_inode_from_disk_ts(from, from->di_ctime);
+ inode_ctime_set(inode, xfs_inode_from_disk_ts(from, from->di_ctime));
ip->i_disk_size = be64_to_cpu(from->di_size);
ip->i_nblocks = be64_to_cpu(from->di_nblocks);
@@ -316,7 +316,7 @@ xfs_inode_to_disk(
to->di_atime = xfs_inode_to_disk_ts(ip, inode->i_atime);
to->di_mtime = xfs_inode_to_disk_ts(ip, inode->i_mtime);
- to->di_ctime = xfs_inode_to_disk_ts(ip, inode->i_ctime);
+ to->di_ctime = xfs_inode_to_disk_ts(ip, inode_ctime_peek(inode));
to->di_nlink = cpu_to_be32(inode->i_nlink);
to->di_gen = cpu_to_be32(inode->i_generation);
to->di_mode = cpu_to_be16(inode->i_mode);
diff --git a/fs/xfs/libxfs/xfs_trans_inode.c b/fs/xfs/libxfs/xfs_trans_inode.c
index cb4796b6e693..f924e81530be 100644
--- a/fs/xfs/libxfs/xfs_trans_inode.c
+++ b/fs/xfs/libxfs/xfs_trans_inode.c
@@ -67,7 +67,7 @@ xfs_trans_ichgtime(
if (flags & XFS_ICHGTIME_MOD)
inode->i_mtime = tv;
if (flags & XFS_ICHGTIME_CHG)
- inode->i_ctime = tv;
+ inode_ctime_set(inode, tv);
if (flags & XFS_ICHGTIME_CREATE)
ip->i_crtime = tv;
}
diff --git a/fs/xfs/xfs_acl.c b/fs/xfs/xfs_acl.c
index 791db7d9c849..75f17d2bb97c 100644
--- a/fs/xfs/xfs_acl.c
+++ b/fs/xfs/xfs_acl.c
@@ -233,7 +233,7 @@ xfs_acl_set_mode(
xfs_ilock(ip, XFS_ILOCK_EXCL);
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
inode->i_mode = mode;
- inode->i_ctime = current_time(inode);
+ inode_ctime_set_current(inode);
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
if (xfs_has_wsync(mp))
diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
index fbb675563208..0d4c141c4413 100644
--- a/fs/xfs/xfs_bmap_util.c
+++ b/fs/xfs/xfs_bmap_util.c
@@ -1644,6 +1644,7 @@ xfs_swap_extents(
uint64_t f;
int resblks = 0;
unsigned int flags = 0;
+ struct timespec64 ctime;
/*
* Lock the inodes against other IO, page faults and truncate to
@@ -1756,8 +1757,9 @@ xfs_swap_extents(
* process that the file was not changed out from
* under it.
*/
- if ((sbp->bs_ctime.tv_sec != VFS_I(ip)->i_ctime.tv_sec) ||
- (sbp->bs_ctime.tv_nsec != VFS_I(ip)->i_ctime.tv_nsec) ||
+ ctime = inode_ctime_peek(VFS_I(ip));
+ if ((sbp->bs_ctime.tv_sec != ctime.tv_sec) ||
+ (sbp->bs_ctime.tv_nsec != ctime.tv_nsec) ||
(sbp->bs_mtime.tv_sec != VFS_I(ip)->i_mtime.tv_sec) ||
(sbp->bs_mtime.tv_nsec != VFS_I(ip)->i_mtime.tv_nsec)) {
error = -EBUSY;
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 9e62cc500140..763d6c95c56d 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -846,7 +846,7 @@ xfs_init_new_inode(
tv = current_time(inode);
inode->i_mtime = tv;
inode->i_atime = tv;
- inode->i_ctime = tv;
+ inode_ctime_set(inode, tv);
ip->i_extsize = 0;
ip->i_diflags = 0;
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c
index 91c847a84e10..116038163098 100644
--- a/fs/xfs/xfs_inode_item.c
+++ b/fs/xfs/xfs_inode_item.c
@@ -528,7 +528,7 @@ xfs_inode_to_log_dinode(
memset(to->di_pad3, 0, sizeof(to->di_pad3));
to->di_atime = xfs_inode_to_log_dinode_ts(ip, inode->i_atime);
to->di_mtime = xfs_inode_to_log_dinode_ts(ip, inode->i_mtime);
- to->di_ctime = xfs_inode_to_log_dinode_ts(ip, inode->i_ctime);
+ to->di_ctime = xfs_inode_to_log_dinode_ts(ip, inode_ctime_peek(inode));
to->di_nlink = inode->i_nlink;
to->di_gen = inode->i_generation;
to->di_mode = inode->i_mode;
diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
index 24718adb3c16..4096c4f86ef7 100644
--- a/fs/xfs/xfs_iops.c
+++ b/fs/xfs/xfs_iops.c
@@ -574,7 +574,7 @@ xfs_vn_getattr(
stat->ino = ip->i_ino;
stat->atime = inode->i_atime;
stat->mtime = inode->i_mtime;
- stat->ctime = inode->i_ctime;
+ stat->ctime = inode_ctime_peek(inode);
stat->blocks = XFS_FSB_TO_BB(mp, ip->i_nblocks + ip->i_delayed_blks);
if (xfs_has_v3inodes(mp)) {
@@ -1055,7 +1055,7 @@ xfs_vn_update_time(
xfs_ilock(ip, XFS_ILOCK_EXCL);
if (flags & S_CTIME)
- inode->i_ctime = *now;
+ inode_ctime_set(inode, *now);
if (flags & S_MTIME)
inode->i_mtime = *now;
if (flags & S_ATIME)
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index f225413a993c..75b07eed0602 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -100,8 +100,8 @@ xfs_bulkstat_one_int(
buf->bs_atime_nsec = inode->i_atime.tv_nsec;
buf->bs_mtime = inode->i_mtime.tv_sec;
buf->bs_mtime_nsec = inode->i_mtime.tv_nsec;
- buf->bs_ctime = inode->i_ctime.tv_sec;
- buf->bs_ctime_nsec = inode->i_ctime.tv_nsec;
+ buf->bs_ctime = inode_ctime_peek(inode).tv_sec;
+ buf->bs_ctime_nsec = inode_ctime_peek(inode).tv_nsec;
buf->bs_gen = inode->i_generation;
buf->bs_mode = inode->i_mode;
--
2.41.0
next prev parent reply other threads:[~2023-06-21 14:54 UTC|newest]
Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20230621144507.55591-1-jlayton@kernel.org>
2023-06-21 14:45 ` [PATCH 02/79] spufs: switch to new ctime accessors 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 ` [PATCH 12/79] fs: " Jeff Layton
2023-06-21 16:42 ` 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-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 ` [PATCH 30/79] f2fs: " 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 ` [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 ` [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 ` [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-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 ` [PATCH 50/79] ocfs2: " 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 ` [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 ` Jeff Layton [this message]
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-22 0:19 ` Jeremy Kerr
[not found] ` <20230621152141.5961cf5f@gandalf.local.home>
[not found] ` <2a5a069572b46b59dd16fe8d54e549a9b5bbb6eb.camel@kernel.org>
2023-06-23 12:41 ` [PATCH 00/79] fs: new accessors for inode->i_ctime Christian Brauner
2023-06-30 22:11 ` Luis Chamberlain
[not found] ` <20230621144507.55591-2-jlayton@kernel.org>
[not found] ` <99b3c749-23d9-6f09-fb75-6a84f3d1b066@kernel.org>
2023-06-22 10:14 ` [PATCH 01/79] fs: add ctime accessors infrastructure Jeff Layton
2023-06-30 22:12 ` Luis Chamberlain
2023-07-12 15:31 ` Randy Dunlap
2023-07-12 15:34 ` Christian Brauner
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-69-jlayton@kernel.org \
--to=jlayton@kernel.org \
--cc=brauner@kernel.org \
--cc=djwong@kernel.org \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox