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

shmem: 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-85-jlayton@kernel.org>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 417d2b6b
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -1047,7 +1047,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend,
void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
{
	shmem_undo_range(inode, lstart, lend, false);
	inode->i_ctime = inode->i_mtime = current_time(inode);
	inode->i_mtime = inode_set_ctime_current(inode);
	inode_inc_iversion(inode);
}
EXPORT_SYMBOL_GPL(shmem_truncate_range);
@@ -1144,9 +1144,9 @@ static int shmem_setattr(struct mnt_idmap *idmap,
	if (attr->ia_valid & ATTR_MODE)
		error = posix_acl_chmod(idmap, dentry, inode->i_mode);
	if (!error && update_ctime) {
		inode->i_ctime = current_time(inode);
		inode_set_ctime_current(inode);
		if (update_mtime)
			inode->i_mtime = inode->i_ctime;
			inode->i_mtime = inode_get_ctime(inode);
		inode_inc_iversion(inode);
	}
	return error;
@@ -2372,7 +2372,7 @@ static struct inode *shmem_get_inode(struct mnt_idmap *idmap, struct super_block
		inode->i_ino = ino;
		inode_init_owner(idmap, inode, dir, mode);
		inode->i_blocks = 0;
		inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
		inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
		inode->i_generation = get_random_u32();
		info = SHMEM_I(inode);
		memset(info, 0, (char *)inode - (char *)info);
@@ -3084,7 +3084,7 @@ shmem_mknod(struct mnt_idmap *idmap, struct inode *dir,

		error = 0;
		dir->i_size += BOGO_DIRENT_SIZE;
		dir->i_ctime = dir->i_mtime = current_time(dir);
		dir->i_mtime = inode_set_ctime_current(dir);
		inode_inc_iversion(dir);
		d_instantiate(dentry, inode);
		dget(dentry); /* Extra count - pin the dentry in core */
@@ -3160,7 +3160,8 @@ static int shmem_link(struct dentry *old_dentry, struct inode *dir, struct dentr
	}

	dir->i_size += BOGO_DIRENT_SIZE;
	inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(inode);
	dir->i_mtime = inode_set_ctime_to_ts(dir,
					     inode_set_ctime_current(inode));
	inode_inc_iversion(dir);
	inc_nlink(inode);
	ihold(inode);	/* New dentry reference */
@@ -3178,7 +3179,8 @@ static int shmem_unlink(struct inode *dir, struct dentry *dentry)
		shmem_free_inode(inode->i_sb);

	dir->i_size -= BOGO_DIRENT_SIZE;
	inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(inode);
	dir->i_mtime = inode_set_ctime_to_ts(dir,
					     inode_set_ctime_current(inode));
	inode_inc_iversion(dir);
	drop_nlink(inode);
	dput(dentry);	/* Undo the count from "create" - this does all the work */
@@ -3320,7 +3322,7 @@ static int shmem_symlink(struct mnt_idmap *idmap, struct inode *dir,
		folio_put(folio);
	}
	dir->i_size += BOGO_DIRENT_SIZE;
	dir->i_ctime = dir->i_mtime = current_time(dir);
	dir->i_mtime = inode_set_ctime_current(dir);
	inode_inc_iversion(dir);
	d_instantiate(dentry, inode);
	dget(dentry);
@@ -3392,7 +3394,7 @@ static int shmem_fileattr_set(struct mnt_idmap *idmap,
		(fa->flags & SHMEM_FL_USER_MODIFIABLE);

	shmem_set_inode_flags(inode, info->fsflags);
	inode->i_ctime = current_time(inode);
	inode_set_ctime_current(inode);
	inode_inc_iversion(inode);
	return 0;
}
@@ -3462,7 +3464,7 @@ static int shmem_xattr_handler_set(const struct xattr_handler *handler,
	name = xattr_full_name(handler, name);
	err = simple_xattr_set(&info->xattrs, name, value, size, flags, NULL);
	if (!err) {
		inode->i_ctime = current_time(inode);
		inode_set_ctime_current(inode);
		inode_inc_iversion(inode);
	}
	return err;