Commit 3d65c46f authored by Jeff Layton's avatar Jeff Layton Committed by Christian Brauner
Browse files

ntfs3: 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: default avatarJeff Layton <jlayton@kernel.org>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Message-Id: <20230705190309.579783-59-jlayton@kernel.org>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 03870d27
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -342,7 +342,7 @@ static int ntfs_extend(struct inode *inode, loff_t pos, size_t count,
		err = 0;
	}

	inode->i_ctime = inode->i_mtime = current_time(inode);
	inode->i_mtime = inode_set_ctime_current(inode);
	mark_inode_dirty(inode);

	if (IS_SYNC(inode)) {
@@ -400,7 +400,7 @@ static int ntfs_truncate(struct inode *inode, loff_t new_size)
	ni_unlock(ni);

	ni->std_fa |= FILE_ATTRIBUTE_ARCHIVE;
	inode->i_ctime = inode->i_mtime = current_time(inode);
	inode->i_mtime = inode_set_ctime_current(inode);
	if (!IS_DIRSYNC(inode)) {
		dirty = 1;
	} else {
@@ -642,7 +642,7 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)
		filemap_invalidate_unlock(mapping);

	if (!err) {
		inode->i_ctime = inode->i_mtime = current_time(inode);
		inode->i_mtime = inode_set_ctime_current(inode);
		mark_inode_dirty(inode);
	}

+2 −1
Original line number Diff line number Diff line
@@ -3265,6 +3265,7 @@ int ni_write_inode(struct inode *inode, int sync, const char *hint)
	if (is_rec_inuse(ni->mi.mrec) &&
	    !(sbi->flags & NTFS_FLAGS_LOG_REPLAYING) && inode->i_nlink) {
		bool modified = false;
		struct timespec64 ctime = inode_get_ctime(inode);

		/* Update times in standard attribute. */
		std = ni_std(ni);
@@ -3280,7 +3281,7 @@ int ni_write_inode(struct inode *inode, int sync, const char *hint)
			modified = true;
		}

		dup.c_time = kernel2nt(&inode->i_ctime);
		dup.c_time = kernel2nt(&ctime);
		if (std->c_time != dup.c_time) {
			std->c_time = dup.c_time;
			modified = true;
+8 −6
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ static struct inode *ntfs_read_mft(struct inode *inode,
	u64 t64;
	struct MFT_REC *rec;
	struct runs_tree *run;
	struct timespec64 ctime;

	inode->i_op = NULL;
	/* Setup 'uid' and 'gid' */
@@ -169,7 +170,8 @@ static struct inode *ntfs_read_mft(struct inode *inode,
		nt2kernel(std5->cr_time, &ni->i_crtime);
#endif
		nt2kernel(std5->a_time, &inode->i_atime);
		nt2kernel(std5->c_time, &inode->i_ctime);
		ctime = inode_get_ctime(inode);
		nt2kernel(std5->c_time, &ctime);
		nt2kernel(std5->m_time, &inode->i_mtime);

		ni->std_fa = std5->fa;
@@ -958,7 +960,7 @@ int ntfs_write_end(struct file *file, struct address_space *mapping, loff_t pos,

	if (err >= 0) {
		if (!(ni->std_fa & FILE_ATTRIBUTE_ARCHIVE)) {
			inode->i_ctime = inode->i_mtime = current_time(inode);
			inode->i_mtime = inode_set_ctime_current(inode);
			ni->std_fa |= FILE_ATTRIBUTE_ARCHIVE;
			dirty = true;
		}
@@ -1658,8 +1660,8 @@ struct inode *ntfs_create_inode(struct mnt_idmap *idmap, struct inode *dir,
	d_instantiate(dentry, inode);

	/* Set original time. inode times (i_ctime) may be changed in ntfs_init_acl. */
	inode->i_atime = inode->i_mtime = inode->i_ctime = dir->i_mtime =
		dir->i_ctime = ni->i_crtime;
	inode->i_atime = inode->i_mtime = inode_set_ctime_to_ts(inode, ni->i_crtime);
	dir->i_mtime = inode_set_ctime_to_ts(dir, ni->i_crtime);

	mark_inode_dirty(dir);
	mark_inode_dirty(inode);
@@ -1765,9 +1767,9 @@ int ntfs_unlink_inode(struct inode *dir, const struct dentry *dentry)

	if (!err) {
		drop_nlink(inode);
		dir->i_mtime = dir->i_ctime = current_time(dir);
		dir->i_mtime = inode_set_ctime_current(dir);
		mark_inode_dirty(dir);
		inode->i_ctime = dir->i_ctime;
		inode_set_ctime_to_ts(inode, inode_get_ctime(dir));
		if (inode->i_nlink)
			mark_inode_dirty(inode);
	} else if (!ni_remove_name_undo(dir_ni, ni, de, de2, undo_remove)) {
+2 −2
Original line number Diff line number Diff line
@@ -156,8 +156,8 @@ static int ntfs_link(struct dentry *ode, struct inode *dir, struct dentry *de)
	err = ntfs_link_inode(inode, de);

	if (!err) {
		dir->i_ctime = dir->i_mtime = inode->i_ctime =
			current_time(dir);
		dir->i_mtime = inode_set_ctime_to_ts(inode,
						     inode_set_ctime_current(dir));
		mark_inode_dirty(inode);
		mark_inode_dirty(dir);
		d_instantiate(de, inode);
+2 −2
Original line number Diff line number Diff line
@@ -637,7 +637,7 @@ static noinline int ntfs_set_acl_ex(struct mnt_idmap *idmap,
	if (!err) {
		set_cached_acl(inode, type, acl);
		inode->i_mode = mode;
		inode->i_ctime = current_time(inode);
		inode_set_ctime_current(inode);
		mark_inode_dirty(inode);
	}

@@ -924,7 +924,7 @@ static noinline int ntfs_setxattr(const struct xattr_handler *handler,
			  NULL);

out:
	inode->i_ctime = current_time(inode);
	inode_set_ctime_current(inode);
	mark_inode_dirty(inode);

	return err;