]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: implement atime updates in xfs_trans_ichgtime
authorDarrick J. Wong <djwong@kernel.org>
Tue, 2 Jul 2024 18:22:35 +0000 (11:22 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 2 Jul 2024 18:36:56 +0000 (11:36 -0700)
Enable xfs_trans_ichgtime to change the inode access time so that we can
use this function to set inode times when allocating inodes instead of
open-coding it.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_shared.h
fs/xfs/libxfs/xfs_trans_inode.c

index 34f104ed372c096ec45a76195b5ff497bf847ebb..9a705381f9e4ac9d4ffd1f17d13358c4cd74e5d8 100644 (file)
@@ -183,6 +183,7 @@ void        xfs_log_get_max_trans_res(struct xfs_mount *mp,
 #define        XFS_ICHGTIME_MOD        0x1     /* data fork modification timestamp */
 #define        XFS_ICHGTIME_CHG        0x2     /* inode field change timestamp */
 #define        XFS_ICHGTIME_CREATE     0x4     /* inode create timestamp */
+#define        XFS_ICHGTIME_ACCESS     0x8     /* last access timestamp */
 
 /* Computed inode geometry for the filesystem. */
 struct xfs_ino_geometry {
index 69fc5b981352b86ad29284918ca9d4b90f8d4855..3c40f37e82c73cf871bb252553331b60c6b1973b 100644 (file)
@@ -68,6 +68,8 @@ xfs_trans_ichgtime(
                inode_set_mtime_to_ts(inode, tv);
        if (flags & XFS_ICHGTIME_CHG)
                inode_set_ctime_to_ts(inode, tv);
+       if (flags & XFS_ICHGTIME_ACCESS)
+               inode_set_atime_to_ts(inode, tv);
        if (flags & XFS_ICHGTIME_CREATE)
                ip->i_crtime = tv;
 }