xfs: convert to ctime accessor functions
authorJeff Layton <jlayton@kernel.org>
Wed, 5 Jul 2023 19:01:47 +0000 (15:01 -0400)
committerChristian Brauner <brauner@kernel.org>
Mon, 24 Jul 2023 08:30:06 +0000 (10:30 +0200)
In later patches, we're going to change how the inode's ctime field is
used. Switch to using accessor functions instead of raw accesses of
inode->i_ctime.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Message-Id: <20230705190309.579783-80-jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/xfs/libxfs/xfs_inode_buf.c
fs/xfs/libxfs/xfs_trans_inode.c
fs/xfs/xfs_acl.c
fs/xfs/xfs_bmap_util.c
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode_item.c
fs/xfs/xfs_iops.c
fs/xfs/xfs_itable.c

index 758aacd8166bfd2881618b0c02eab52a9b63dc67..a35781577cad9fbc2ff4edf4952abb0f44a41084 100644 (file)
@@ -222,7 +222,8 @@ 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_set_ctime_to_ts(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 +317,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_get_ctime(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);
index cb4796b6e693ae7a65b57a50886586db672f609f..6b2296ff248a4385c737c943064c9234dfef402f 100644 (file)
@@ -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_set_ctime_to_ts(inode, tv);
        if (flags & XFS_ICHGTIME_CREATE)
                ip->i_crtime = tv;
 }
index 791db7d9c8498b80f58e4d9cedf60a15a557f11b..6b840301817a9860dc1ec5598cace470c9da9352 100644 (file)
@@ -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_set_ctime_current(inode);
        xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
 
        if (xfs_has_wsync(mp))
index fbb675563208db12a05b7f825bc1d02c681a4d59..fcefab68728598b9cb3f011d27fa240bd794bbf7 100644 (file)
@@ -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_get_ctime(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;
index 9e62cc50014010df3837f321e0de3db17ee133dd..360fe83a334fc5dcf061d22628bee58d0baa3619 100644 (file)
@@ -843,10 +843,9 @@ xfs_init_new_inode(
        ip->i_df.if_nextents = 0;
        ASSERT(ip->i_nblocks == 0);
 
-       tv = current_time(inode);
+       tv = inode_set_ctime_current(inode);
        inode->i_mtime = tv;
        inode->i_atime = tv;
-       inode->i_ctime = tv;
 
        ip->i_extsize = 0;
        ip->i_diflags = 0;
index 91c847a84e108ce515d0e60a13b224e7e31c6d97..127b2410eb206fada51f272d6717b1e6f437b16a 100644 (file)
@@ -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_get_ctime(inode));
        to->di_nlink = inode->i_nlink;
        to->di_gen = inode->i_generation;
        to->di_mode = inode->i_mode;
index 24718adb3c16db9db2daaeba3158427ade065a27..3a9363953ef2653b7f25ee8a2de1a190d0bc7316 100644 (file)
@@ -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_get_ctime(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_set_ctime_to_ts(inode, *now);
        if (flags & S_MTIME)
                inode->i_mtime = *now;
        if (flags & S_ATIME)
index f225413a993c5a800493b63a155a3e141f23d9ee..c2093cb56092bedb2058e3fdd9df13cbd099068b 100644 (file)
@@ -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_get_ctime(inode).tv_sec;
+       buf->bs_ctime_nsec = inode_get_ctime(inode).tv_nsec;
        buf->bs_gen = inode->i_generation;
        buf->bs_mode = inode->i_mode;