All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Namjae Jeon <linkinjeon@kernel.org>,
	linux-ntfs-dev@lists.sourceforge.net
Subject: [PATCH 53/87] fs/ntfs: convert to new inode {a,m}time accessors
Date: Thu, 28 Sep 2023 07:03:02 -0400	[thread overview]
Message-ID: <20230928110413.33032-52-jlayton@kernel.org> (raw)
In-Reply-To: <20230928110413.33032-1-jlayton@kernel.org>

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/ntfs/inode.c | 25 +++++++++++++------------
 fs/ntfs/mft.c   |  2 +-
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c
index 99ac6ea277c4..aba1e22db4e9 100644
--- a/fs/ntfs/inode.c
+++ b/fs/ntfs/inode.c
@@ -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 @@ int ntfs_truncate(struct inode *vi)
 	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,
diff --git a/fs/ntfs/mft.c b/fs/ntfs/mft.c
index ad1a8f72da22..6fd1dc4b08c8 100644
--- a/fs/ntfs/mft.c
+++ b/fs/ntfs/mft.c
@@ -2682,7 +2682,7 @@ ntfs_inode *ntfs_mft_record_alloc(ntfs_volume *vol, const int mode,
 			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.
-- 
2.41.0


  parent reply	other threads:[~2023-09-28 11:08 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-28 11:02 [PATCH 00/87] fs: new accessor methods for atime and mtime Jeff Layton
2023-09-28 11:02 ` Jeff Layton
2023-09-28 11:02 ` Jeff Layton
2023-09-28 11:02 ` Jeff Layton
2023-09-28 11:02 ` [f2fs-dev] " Jeff Layton
2023-09-28 11:02 ` Jeff Layton
2023-09-28 11:02 ` [PATCH 02/87] fs: convert core infrastructure to new {a,m}time accessors Jeff Layton
2023-09-28 11:02   ` [PATCH 03/87] arch/powerpc/platforms/cell/spufs: convert to new inode " Jeff Layton
2023-09-28 11:02     ` Jeff Layton
2023-09-28 11:02   ` [PATCH 04/87] arch/s390/hypfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 05/87] drivers/android: " Jeff Layton
2023-09-28 11:02   ` [PATCH 06/87] drivers/char: " Jeff Layton
2023-09-28 11:02   ` [PATCH 07/87] drivers/infiniband/hw/qib: " Jeff Layton
2023-09-28 11:02   ` [PATCH 08/87] drivers/misc/ibmasm: " Jeff Layton
2023-09-28 11:02   ` [PATCH 09/87] drivers/misc: " Jeff Layton
2023-09-28 11:02   ` [PATCH 10/87] drivers/platform/x86: " Jeff Layton
2023-09-28 12:34     ` Hans de Goede
2023-09-28 11:02   ` [PATCH 11/87] drivers/tty: " Jeff Layton
2023-09-28 12:13     ` Greg KH
2023-09-28 12:23       ` Jeff Layton
2023-09-28 11:02   ` [PATCH 12/87] drivers/usb/core: " Jeff Layton
2023-09-28 11:02   ` [PATCH 13/87] drivers/usb/gadget/function: " Jeff Layton
2023-09-28 11:02   ` [PATCH 14/87] drivers/usb/gadget/legacy: " Jeff Layton
2023-09-28 11:02   ` [PATCH 15/87] fs/9p: " Jeff Layton
2023-09-28 11:02   ` [PATCH 16/87] fs/adfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 17/87] fs/affs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 18/87] fs/afs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 19/87] fs/autofs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 20/87] fs/befs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 21/87] fs/bfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 22/87] fs/btrfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 23/87] fs/ceph: " Jeff Layton
2023-09-28 11:02   ` [PATCH 24/87] fs/coda: " Jeff Layton
2023-09-28 11:02   ` [PATCH 25/87] fs/configfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 26/87] fs/cramfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 27/87] fs/debugfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 28/87] fs/devpts: " Jeff Layton
2023-09-28 11:02   ` [PATCH 29/87] fs/efivarfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 30/87] fs/efs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 31/87] fs/erofs: " Jeff Layton
2023-09-28 11:02     ` Jeff Layton
2023-09-28 11:02   ` [PATCH 32/87] fs/exfat: " Jeff Layton
2023-09-28 11:02   ` [PATCH 33/87] fs/ext2: " Jeff Layton
2023-09-28 11:02   ` [PATCH 34/87] fs/ext4: " Jeff Layton
2023-09-28 11:02   ` [f2fs-dev] [PATCH 35/87] fs/f2fs: convert to new inode {a, m}time accessors Jeff Layton
2023-09-28 11:02     ` [PATCH 35/87] fs/f2fs: convert to new inode {a,m}time accessors Jeff Layton
2023-09-28 11:02   ` [PATCH 36/87] fs/fat: " Jeff Layton
2023-09-28 11:02   ` [PATCH 37/87] fs/freevxfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 38/87] fs/fuse: " Jeff Layton
2023-09-28 11:02   ` [PATCH 39/87] fs/gfs2: " Jeff Layton
2023-09-28 11:02   ` [PATCH 40/87] fs/hfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 41/87] fs/hfsplus: " Jeff Layton
2023-09-28 11:02   ` [PATCH 42/87] fs/hostfs: " Jeff Layton
2023-09-28 11:02     ` Jeff Layton
2023-09-28 11:02   ` [PATCH 43/87] fs/hpfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 44/87] fs/hugetlbfs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 45/87] fs/isofs: " Jeff Layton
2023-09-28 11:02   ` [PATCH 46/87] fs/jffs2: " Jeff Layton
2023-09-28 11:02     ` Jeff Layton
2023-09-28 11:02   ` [PATCH 47/87] fs/jfs: " Jeff Layton
2023-10-03 16:33     ` [Jfs-discussion] [PATCH 47/87] fs/jfs: convert to new inode {a, m}time accessors Dave Kleikamp
2023-09-28 11:02   ` [PATCH 48/87] fs/kernfs: convert to new inode {a,m}time accessors Jeff Layton
2023-09-28 11:02   ` [PATCH 49/87] fs/minix: " Jeff Layton
2023-09-28 11:02   ` [PATCH 50/87] fs/nfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 51/87] fs/nfsd: " Jeff Layton
2023-09-28 13:56     ` Chuck Lever
2023-09-28 14:09       ` Jeff Layton
2023-09-28 14:33         ` Chuck Lever
     [not found]   ` <20230928110413.33032-1-jlayton-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-09-28 11:03     ` [PATCH 52/87] fs/nilfs2: " Jeff Layton
2023-09-28 11:03       ` Jeff Layton
2023-09-28 11:03   ` Jeff Layton [this message]
2023-09-28 11:03   ` [PATCH 54/87] fs/ntfs3: " Jeff Layton
2023-09-28 11:03   ` [PATCH 55/87] fs/ocfs2: " Jeff Layton
2023-09-28 11:03   ` [PATCH 56/87] fs/omfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 57/87] fs/openpromfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 58/87] fs/orangefs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 59/87] fs/overlayfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 60/87] fs/proc: " Jeff Layton
2023-09-28 11:03   ` [PATCH 61/87] fs/pstore: " Jeff Layton
2023-09-28 11:03   ` [PATCH 62/87] fs/qnx4: " Jeff Layton
2023-09-28 12:41     ` Anders Larsen
2023-09-28 11:03   ` [PATCH 63/87] fs/qnx6: " Jeff Layton
2023-09-28 11:03   ` [PATCH 64/87] fs/ramfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 65/87] fs/reiserfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 66/87] fs/romfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 67/87] fs/smb/client: " Jeff Layton
2023-09-28 11:03   ` [PATCH 68/87] fs/smb/server: " Jeff Layton
2023-09-28 11:03   ` [PATCH 69/87] fs/squashfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 70/87] fs/sysv: " Jeff Layton
2023-09-28 11:03   ` [PATCH 71/87] fs/tracefs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 72/87] fs/ubifs: " Jeff Layton
2023-09-28 11:03     ` Jeff Layton
2023-09-28 11:03   ` [PATCH 73/87] fs/udf: " Jeff Layton
2023-09-28 11:03   ` [PATCH 74/87] fs/ufs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 75/87] fs/vboxsf: " Jeff Layton
2023-09-28 11:03   ` [PATCH 76/87] fs/xfs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 77/87] fs/zonefs: " Jeff Layton
2023-09-28 11:03   ` [PATCH 78/87] ipc: " Jeff Layton
2023-09-28 11:03   ` [PATCH 79/87] kernel/bpf: " Jeff Layton
2023-09-28 11:03   ` [PATCH 80/87] mm: " Jeff Layton
2023-09-28 11:03   ` [PATCH 81/87] net/sunrpc: " Jeff Layton
2023-09-28 11:03   ` [PATCH 82/87] security/apparmor: " Jeff Layton
2023-09-28 11:03   ` [PATCH 83/87] security/selinux: " Jeff Layton
2023-10-03 19:53     ` Paul Moore
2023-09-28 11:03   ` [PATCH 84/87] security: " Jeff Layton
2023-10-03 23:41     ` Paul Moore
2023-09-28 11:03 ` [PATCH 01/87] fs: new accessor methods for atime and mtime Jeff Layton
2023-09-28 11:03   ` Jeff Layton
2023-09-28 11:03   ` Jeff Layton
2023-09-28 11:03   ` Jeff Layton
2023-09-28 11:03   ` [f2fs-dev] " Jeff Layton
2023-09-28 11:03   ` Jeff Layton

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=20230928110413.33032-52-jlayton@kernel.org \
    --to=jlayton@kernel.org \
    --cc=brauner@kernel.org \
    --cc=linkinjeon@kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-ntfs-dev@lists.sourceforge.net \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.