Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

xfs: convert to ctime accessor functions

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>

authored by

Jeff Layton and committed by
Christian Brauner
a0a415e3 0593be0c

+15 -13
+3 -2
fs/xfs/libxfs/xfs_inode_buf.c
··· 222 222 */ 223 223 inode->i_atime = xfs_inode_from_disk_ts(from, from->di_atime); 224 224 inode->i_mtime = xfs_inode_from_disk_ts(from, from->di_mtime); 225 - inode->i_ctime = xfs_inode_from_disk_ts(from, from->di_ctime); 225 + inode_set_ctime_to_ts(inode, 226 + xfs_inode_from_disk_ts(from, from->di_ctime)); 226 227 227 228 ip->i_disk_size = be64_to_cpu(from->di_size); 228 229 ip->i_nblocks = be64_to_cpu(from->di_nblocks); ··· 317 316 318 317 to->di_atime = xfs_inode_to_disk_ts(ip, inode->i_atime); 319 318 to->di_mtime = xfs_inode_to_disk_ts(ip, inode->i_mtime); 320 - to->di_ctime = xfs_inode_to_disk_ts(ip, inode->i_ctime); 319 + to->di_ctime = xfs_inode_to_disk_ts(ip, inode_get_ctime(inode)); 321 320 to->di_nlink = cpu_to_be32(inode->i_nlink); 322 321 to->di_gen = cpu_to_be32(inode->i_generation); 323 322 to->di_mode = cpu_to_be16(inode->i_mode);
+1 -1
fs/xfs/libxfs/xfs_trans_inode.c
··· 67 67 if (flags & XFS_ICHGTIME_MOD) 68 68 inode->i_mtime = tv; 69 69 if (flags & XFS_ICHGTIME_CHG) 70 - inode->i_ctime = tv; 70 + inode_set_ctime_to_ts(inode, tv); 71 71 if (flags & XFS_ICHGTIME_CREATE) 72 72 ip->i_crtime = tv; 73 73 }
+1 -1
fs/xfs/xfs_acl.c
··· 233 233 xfs_ilock(ip, XFS_ILOCK_EXCL); 234 234 xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); 235 235 inode->i_mode = mode; 236 - inode->i_ctime = current_time(inode); 236 + inode_set_ctime_current(inode); 237 237 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); 238 238 239 239 if (xfs_has_wsync(mp))
+4 -2
fs/xfs/xfs_bmap_util.c
··· 1644 1644 uint64_t f; 1645 1645 int resblks = 0; 1646 1646 unsigned int flags = 0; 1647 + struct timespec64 ctime; 1647 1648 1648 1649 /* 1649 1650 * Lock the inodes against other IO, page faults and truncate to ··· 1757 1756 * process that the file was not changed out from 1758 1757 * under it. 1759 1758 */ 1760 - if ((sbp->bs_ctime.tv_sec != VFS_I(ip)->i_ctime.tv_sec) || 1761 - (sbp->bs_ctime.tv_nsec != VFS_I(ip)->i_ctime.tv_nsec) || 1759 + ctime = inode_get_ctime(VFS_I(ip)); 1760 + if ((sbp->bs_ctime.tv_sec != ctime.tv_sec) || 1761 + (sbp->bs_ctime.tv_nsec != ctime.tv_nsec) || 1762 1762 (sbp->bs_mtime.tv_sec != VFS_I(ip)->i_mtime.tv_sec) || 1763 1763 (sbp->bs_mtime.tv_nsec != VFS_I(ip)->i_mtime.tv_nsec)) { 1764 1764 error = -EBUSY;
+1 -2
fs/xfs/xfs_inode.c
··· 843 843 ip->i_df.if_nextents = 0; 844 844 ASSERT(ip->i_nblocks == 0); 845 845 846 - tv = current_time(inode); 846 + tv = inode_set_ctime_current(inode); 847 847 inode->i_mtime = tv; 848 848 inode->i_atime = tv; 849 - inode->i_ctime = tv; 850 849 851 850 ip->i_extsize = 0; 852 851 ip->i_diflags = 0;
+1 -1
fs/xfs/xfs_inode_item.c
··· 528 528 memset(to->di_pad3, 0, sizeof(to->di_pad3)); 529 529 to->di_atime = xfs_inode_to_log_dinode_ts(ip, inode->i_atime); 530 530 to->di_mtime = xfs_inode_to_log_dinode_ts(ip, inode->i_mtime); 531 - to->di_ctime = xfs_inode_to_log_dinode_ts(ip, inode->i_ctime); 531 + to->di_ctime = xfs_inode_to_log_dinode_ts(ip, inode_get_ctime(inode)); 532 532 to->di_nlink = inode->i_nlink; 533 533 to->di_gen = inode->i_generation; 534 534 to->di_mode = inode->i_mode;
+2 -2
fs/xfs/xfs_iops.c
··· 574 574 stat->ino = ip->i_ino; 575 575 stat->atime = inode->i_atime; 576 576 stat->mtime = inode->i_mtime; 577 - stat->ctime = inode->i_ctime; 577 + stat->ctime = inode_get_ctime(inode); 578 578 stat->blocks = XFS_FSB_TO_BB(mp, ip->i_nblocks + ip->i_delayed_blks); 579 579 580 580 if (xfs_has_v3inodes(mp)) { ··· 1055 1055 1056 1056 xfs_ilock(ip, XFS_ILOCK_EXCL); 1057 1057 if (flags & S_CTIME) 1058 - inode->i_ctime = *now; 1058 + inode_set_ctime_to_ts(inode, *now); 1059 1059 if (flags & S_MTIME) 1060 1060 inode->i_mtime = *now; 1061 1061 if (flags & S_ATIME)
+2 -2
fs/xfs/xfs_itable.c
··· 100 100 buf->bs_atime_nsec = inode->i_atime.tv_nsec; 101 101 buf->bs_mtime = inode->i_mtime.tv_sec; 102 102 buf->bs_mtime_nsec = inode->i_mtime.tv_nsec; 103 - buf->bs_ctime = inode->i_ctime.tv_sec; 104 - buf->bs_ctime_nsec = inode->i_ctime.tv_nsec; 103 + buf->bs_ctime = inode_get_ctime(inode).tv_sec; 104 + buf->bs_ctime_nsec = inode_get_ctime(inode).tv_nsec; 105 105 buf->bs_gen = inode->i_generation; 106 106 buf->bs_mode = inode->i_mode; 107 107