ntfs: convert to new timestamp accessors
authorJeff Layton <jlayton@kernel.org>
Wed, 4 Oct 2023 18:52:39 +0000 (14:52 -0400)
committerChristian Brauner <brauner@kernel.org>
Wed, 18 Oct 2023 12:08:24 +0000 (14:08 +0200)
Convert to using the new inode timestamp accessor functions.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://lore.kernel.org/r/20231004185347.80880-52-jlayton@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/ntfs/inode.c
fs/ntfs/mft.c

index 99ac6ea277c45bba43a706005167769e75b47ab8..aba1e22db4e9bb16ff1d89f466737989e9268e51 100644 (file)
@@ -648,7 +648,7 @@ static int ntfs_read_locked_inode(struct inode *vi)
         * mtime is the last change of the data within the file. Not changed
         * when only metadata is changed, e.g. a rename doesn't affect mtime.
         */
-       vi->i_mtime = ntfs2utc(si->last_data_change_time);
+       inode_set_mtime_to_ts(vi, ntfs2utc(si->last_data_change_time));
        /*
         * ctime is the last change of the metadata of the file. This obviously
         * always changes, when mtime is changed. ctime can be changed on its
@@ -659,7 +659,7 @@ static int ntfs_read_locked_inode(struct inode *vi)
         * Last access to the data within the file. Not changed during a rename
         * for example but changed whenever the file is written to.
         */
-       vi->i_atime = ntfs2utc(si->last_access_time);
+       inode_set_atime_to_ts(vi, ntfs2utc(si->last_access_time));
 
        /* Find the attribute list attribute if present. */
        ntfs_attr_reinit_search_ctx(ctx);
@@ -1217,9 +1217,9 @@ static int ntfs_read_locked_attr_inode(struct inode *base_vi, struct inode *vi)
        vi->i_uid       = base_vi->i_uid;
        vi->i_gid       = base_vi->i_gid;
        set_nlink(vi, base_vi->i_nlink);
-       vi->i_mtime     = base_vi->i_mtime;
+       inode_set_mtime_to_ts(vi, inode_get_mtime(base_vi));
        inode_set_ctime_to_ts(vi, inode_get_ctime(base_vi));
-       vi->i_atime     = base_vi->i_atime;
+       inode_set_atime_to_ts(vi, inode_get_atime(base_vi));
        vi->i_generation = ni->seq_no = base_ni->seq_no;
 
        /* Set inode type to zero but preserve permissions. */
@@ -1483,9 +1483,9 @@ static int ntfs_read_locked_index_inode(struct inode *base_vi, struct inode *vi)
        vi->i_uid       = base_vi->i_uid;
        vi->i_gid       = base_vi->i_gid;
        set_nlink(vi, base_vi->i_nlink);
-       vi->i_mtime     = base_vi->i_mtime;
+       inode_set_mtime_to_ts(vi, inode_get_mtime(base_vi));
        inode_set_ctime_to_ts(vi, inode_get_ctime(base_vi));
-       vi->i_atime     = base_vi->i_atime;
+       inode_set_atime_to_ts(vi, inode_get_atime(base_vi));
        vi->i_generation = ni->seq_no = base_ni->seq_no;
        /* Set inode type to zero but preserve permissions. */
        vi->i_mode      = base_vi->i_mode & ~S_IFMT;
@@ -2805,13 +2805,14 @@ done:
        if (!IS_NOCMTIME(VFS_I(base_ni)) && !IS_RDONLY(VFS_I(base_ni))) {
                struct timespec64 now = current_time(VFS_I(base_ni));
                struct timespec64 ctime = inode_get_ctime(VFS_I(base_ni));
+               struct timespec64 mtime = inode_get_mtime(VFS_I(base_ni));
                int sync_it = 0;
 
-               if (!timespec64_equal(&VFS_I(base_ni)->i_mtime, &now) ||
+               if (!timespec64_equal(&mtime, &now) ||
                    !timespec64_equal(&ctime, &now))
                        sync_it = 1;
                inode_set_ctime_to_ts(VFS_I(base_ni), now);
-               VFS_I(base_ni)->i_mtime = now;
+               inode_set_mtime_to_ts(VFS_I(base_ni), now);
 
                if (sync_it)
                        mark_inode_dirty_sync(VFS_I(base_ni));
@@ -2925,9 +2926,9 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
                }
        }
        if (ia_valid & ATTR_ATIME)
-               vi->i_atime = attr->ia_atime;
+               inode_set_atime_to_ts(vi, attr->ia_atime);
        if (ia_valid & ATTR_MTIME)
-               vi->i_mtime = attr->ia_mtime;
+               inode_set_mtime_to_ts(vi, attr->ia_mtime);
        if (ia_valid & ATTR_CTIME)
                inode_set_ctime_to_ts(vi, attr->ia_ctime);
        mark_inode_dirty(vi);
@@ -2996,7 +2997,7 @@ int __ntfs_write_inode(struct inode *vi, int sync)
        si = (STANDARD_INFORMATION*)((u8*)ctx->attr +
                        le16_to_cpu(ctx->attr->data.resident.value_offset));
        /* Update the access times if they have changed. */
-       nt = utc2ntfs(vi->i_mtime);
+       nt = utc2ntfs(inode_get_mtime(vi));
        if (si->last_data_change_time != nt) {
                ntfs_debug("Updating mtime for inode 0x%lx: old = 0x%llx, "
                                "new = 0x%llx", vi->i_ino, (long long)
@@ -3014,7 +3015,7 @@ int __ntfs_write_inode(struct inode *vi, int sync)
                si->last_mft_change_time = nt;
                modified = true;
        }
-       nt = utc2ntfs(vi->i_atime);
+       nt = utc2ntfs(inode_get_atime(vi));
        if (si->last_access_time != nt) {
                ntfs_debug("Updating atime for inode 0x%lx: old = 0x%llx, "
                                "new = 0x%llx", vi->i_ino,
index ad1a8f72da22408d6b8c66cd48f628ff06d495cf..6fd1dc4b08c8122968bf2543801b62bf2c902d73 100644 (file)
@@ -2682,7 +2682,7 @@ mft_rec_already_initialized:
                        vi->i_mode &= ~S_IWUGO;
 
                /* Set the inode times to the current time. */
-               vi->i_atime = vi->i_mtime = inode_set_ctime_current(vi);
+               simple_inode_init_ts(vi);
                /*
                 * Set the file size to 0, the ntfs inode sizes are set to 0 by
                 * the call to ntfs_init_big_inode() below.