Re: [PATCH v2 63/92] omfs: convert to ctime accessor functions

From: Jan Kara
Date: Thu Jul 06 2023 - 09:52:12 EST


On Wed 05-07-23 15:01:28, Jeff Layton wrote:
> 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.
>
> Acked-by: Bob Copeland <me@xxxxxxxxxxxxxxx>
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> fs/omfs/dir.c | 4 ++--
> fs/omfs/inode.c | 9 ++++-----
> 2 files changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c
> index 82cf7e9a665f..6bda275826d6 100644
> --- a/fs/omfs/dir.c
> +++ b/fs/omfs/dir.c
> @@ -143,7 +143,7 @@ static int omfs_add_link(struct dentry *dentry, struct inode *inode)
> mark_buffer_dirty(bh);
> brelse(bh);
>
> - dir->i_ctime = current_time(dir);
> + inode_set_ctime_current(dir);
>
> /* mark affected inodes dirty to rebuild checksums */
> mark_inode_dirty(dir);
> @@ -399,7 +399,7 @@ static int omfs_rename(struct mnt_idmap *idmap, struct inode *old_dir,
> if (err)
> goto out;
>
> - old_inode->i_ctime = current_time(old_inode);
> + inode_set_ctime_current(old_inode);
> mark_inode_dirty(old_inode);
> out:
> return err;
> diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c
> index c4c79e07efc7..2f8c1882f45c 100644
> --- a/fs/omfs/inode.c
> +++ b/fs/omfs/inode.c
> @@ -51,7 +51,7 @@ struct inode *omfs_new_inode(struct inode *dir, umode_t mode)
> inode_init_owner(&nop_mnt_idmap, inode, NULL, mode);
> inode->i_mapping->a_ops = &omfs_aops;
>
> - inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
> + inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
> switch (mode & S_IFMT) {
> case S_IFDIR:
> inode->i_op = &omfs_dir_inops;
> @@ -134,8 +134,8 @@ static int __omfs_write_inode(struct inode *inode, int wait)
> oi->i_head.h_magic = OMFS_IMAGIC;
> oi->i_size = cpu_to_be64(inode->i_size);
>
> - ctime = inode->i_ctime.tv_sec * 1000LL +
> - ((inode->i_ctime.tv_nsec + 999)/1000);
> + ctime = inode_get_ctime(inode).tv_sec * 1000LL +
> + ((inode_get_ctime(inode).tv_nsec + 999)/1000);
> oi->i_ctime = cpu_to_be64(ctime);
>
> omfs_update_checksums(oi);
> @@ -232,10 +232,9 @@ struct inode *omfs_iget(struct super_block *sb, ino_t ino)
>
> inode->i_atime.tv_sec = ctime;
> inode->i_mtime.tv_sec = ctime;
> - inode->i_ctime.tv_sec = ctime;
> + inode_set_ctime(inode, ctime, nsecs);
> inode->i_atime.tv_nsec = nsecs;
> inode->i_mtime.tv_nsec = nsecs;
> - inode->i_ctime.tv_nsec = nsecs;
>
> inode->i_mapping->a_ops = &omfs_aops;
>
> --
> 2.41.0
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR