On Wed 21-06-23 10:45:23, Jeff Layton wrote: > In later patches, we're going to change how the ctime.tv_nsec field is > utilized. Switch to using accessor functions instead of raw accesses of > inode->i_ctime. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/affs/amigaffs.c | 6 +++--- > fs/affs/inode.c | 17 +++++++++-------- > 2 files changed, 12 insertions(+), 11 deletions(-) > > diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c > index 29f11e10a7c7..2b508aa6707e 100644 > --- a/fs/affs/amigaffs.c > +++ b/fs/affs/amigaffs.c > @@ -60,7 +60,7 @@ affs_insert_hash(struct inode *dir, struct buffer_head *bh) > mark_buffer_dirty_inode(dir_bh, dir); > affs_brelse(dir_bh); > > - dir->i_mtime = dir->i_ctime = current_time(dir); > + dir->i_mtime = inode_ctime_set_current(dir); > inode_inc_iversion(dir); > mark_inode_dirty(dir); > > @@ -114,7 +114,7 @@ affs_remove_hash(struct inode *dir, struct buffer_head *rem_bh) > > affs_brelse(bh); > > - dir->i_mtime = dir->i_ctime = current_time(dir); > + dir->i_mtime = inode_ctime_set_current(dir); > inode_inc_iversion(dir); > mark_inode_dirty(dir); > > @@ -315,7 +315,7 @@ affs_remove_header(struct dentry *dentry) > else > clear_nlink(inode); > affs_unlock_link(inode); > - inode->i_ctime = current_time(inode); > + inode_ctime_set_current(inode); > mark_inode_dirty(inode); > > done: > diff --git a/fs/affs/inode.c b/fs/affs/inode.c > index 27f77a52c5c8..177bac4def5e 100644 > --- a/fs/affs/inode.c > +++ b/fs/affs/inode.c > @@ -19,6 +19,7 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino) > { > struct affs_sb_info *sbi = AFFS_SB(sb); > struct buffer_head *bh; > + struct timespec64 ctime; > struct affs_tail *tail; > struct inode *inode; > u32 block; > @@ -149,13 +150,13 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino) > break; > } > > - inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec > - = (be32_to_cpu(tail->change.days) * 86400LL + > - be32_to_cpu(tail->change.mins) * 60 + > - be32_to_cpu(tail->change.ticks) / 50 + > - AFFS_EPOCH_DELTA) + > - sys_tz.tz_minuteswest * 60; > - inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec = inode->i_atime.tv_nsec = 0; > + ctime.tv_sec = (be32_to_cpu(tail->change.days) * 86400LL + > + be32_to_cpu(tail->change.mins) * 60 + > + be32_to_cpu(tail->change.ticks) / 50 + > + AFFS_EPOCH_DELTA) + > + sys_tz.tz_minuteswest * 60; > + ctime.tv_nsec = 0; > + inode->i_atime = inode->i_mtime = inode_ctime_set(inode, ctime); > affs_brelse(bh); > unlock_new_inode(inode); > return inode; > @@ -314,7 +315,7 @@ affs_new_inode(struct inode *dir) > inode->i_gid = current_fsgid(); > inode->i_ino = block; > set_nlink(inode, 1); > - inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode->i_atime = inode_ctime_set_current(inode); > atomic_set(&AFFS_I(inode)->i_opencnt, 0); > AFFS_I(inode)->i_blkcnt = 0; > AFFS_I(inode)->i_lc = NULL; > -- > 2.41.0 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR