Message ID | 20230621144735.55953-7-jlayton@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fs: new accessors for inode->i_ctime | expand |
On Wed 21-06-23 10:45:21, 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@kernel.org> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > fs/9p/vfs_inode.c | 6 ++++-- > fs/9p/vfs_inode_dotl.c | 11 +++++------ > 2 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c > index 36b466e35887..098e4c7160a8 100644 > --- a/fs/9p/vfs_inode.c > +++ b/fs/9p/vfs_inode.c > @@ -261,7 +261,7 @@ int v9fs_init_inode(struct v9fs_session_info *v9ses, > inode_init_owner(&nop_mnt_idmap, inode, NULL, mode); > inode->i_blocks = 0; > inode->i_rdev = rdev; > - inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode); > inode->i_mapping->a_ops = &v9fs_addr_operations; > inode->i_private = NULL; > > @@ -1153,12 +1153,14 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode, > umode_t mode; > struct v9fs_session_info *v9ses = sb->s_fs_info; > struct v9fs_inode *v9inode = V9FS_I(inode); > + struct timespec64 ctime = { .tv_sec = stat->mtime, > + .tv_nsec = 0 }; > > set_nlink(inode, 1); > > inode->i_atime.tv_sec = stat->atime; > inode->i_mtime.tv_sec = stat->mtime; > - inode->i_ctime.tv_sec = stat->mtime; > + inode_ctime_set(inode, ctime); > > inode->i_uid = v9ses->dfltuid; > inode->i_gid = v9ses->dfltgid; > diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c > index 5361cd2d7996..0041b5fc4407 100644 > --- a/fs/9p/vfs_inode_dotl.c > +++ b/fs/9p/vfs_inode_dotl.c > @@ -640,14 +640,15 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode, > { > umode_t mode; > struct v9fs_inode *v9inode = V9FS_I(inode); > + struct timespec64 ctime = { .tv_sec = stat->st_ctime_sec, > + .tv_nsec = stat->st_ctime_nsec }; > > if ((stat->st_result_mask & P9_STATS_BASIC) == P9_STATS_BASIC) { > inode->i_atime.tv_sec = stat->st_atime_sec; > inode->i_atime.tv_nsec = stat->st_atime_nsec; > inode->i_mtime.tv_sec = stat->st_mtime_sec; > inode->i_mtime.tv_nsec = stat->st_mtime_nsec; > - inode->i_ctime.tv_sec = stat->st_ctime_sec; > - inode->i_ctime.tv_nsec = stat->st_ctime_nsec; > + inode_ctime_set(inode, ctime); > inode->i_uid = stat->st_uid; > inode->i_gid = stat->st_gid; > set_nlink(inode, stat->st_nlink); > @@ -668,10 +669,8 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode, > inode->i_mtime.tv_sec = stat->st_mtime_sec; > inode->i_mtime.tv_nsec = stat->st_mtime_nsec; > } > - if (stat->st_result_mask & P9_STATS_CTIME) { > - inode->i_ctime.tv_sec = stat->st_ctime_sec; > - inode->i_ctime.tv_nsec = stat->st_ctime_nsec; > - } > + if (stat->st_result_mask & P9_STATS_CTIME) > + inode_ctime_set(inode, ctime); > if (stat->st_result_mask & P9_STATS_UID) > inode->i_uid = stat->st_uid; > if (stat->st_result_mask & P9_STATS_GID) > -- > 2.41.0 >
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 36b466e35887..098e4c7160a8 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c @@ -261,7 +261,7 @@ int v9fs_init_inode(struct v9fs_session_info *v9ses, inode_init_owner(&nop_mnt_idmap, inode, NULL, mode); inode->i_blocks = 0; inode->i_rdev = rdev; - inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode); + inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode); inode->i_mapping->a_ops = &v9fs_addr_operations; inode->i_private = NULL; @@ -1153,12 +1153,14 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode, umode_t mode; struct v9fs_session_info *v9ses = sb->s_fs_info; struct v9fs_inode *v9inode = V9FS_I(inode); + struct timespec64 ctime = { .tv_sec = stat->mtime, + .tv_nsec = 0 }; set_nlink(inode, 1); inode->i_atime.tv_sec = stat->atime; inode->i_mtime.tv_sec = stat->mtime; - inode->i_ctime.tv_sec = stat->mtime; + inode_ctime_set(inode, ctime); inode->i_uid = v9ses->dfltuid; inode->i_gid = v9ses->dfltgid; diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c index 5361cd2d7996..0041b5fc4407 100644 --- a/fs/9p/vfs_inode_dotl.c +++ b/fs/9p/vfs_inode_dotl.c @@ -640,14 +640,15 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode, { umode_t mode; struct v9fs_inode *v9inode = V9FS_I(inode); + struct timespec64 ctime = { .tv_sec = stat->st_ctime_sec, + .tv_nsec = stat->st_ctime_nsec }; if ((stat->st_result_mask & P9_STATS_BASIC) == P9_STATS_BASIC) { inode->i_atime.tv_sec = stat->st_atime_sec; inode->i_atime.tv_nsec = stat->st_atime_nsec; inode->i_mtime.tv_sec = stat->st_mtime_sec; inode->i_mtime.tv_nsec = stat->st_mtime_nsec; - inode->i_ctime.tv_sec = stat->st_ctime_sec; - inode->i_ctime.tv_nsec = stat->st_ctime_nsec; + inode_ctime_set(inode, ctime); inode->i_uid = stat->st_uid; inode->i_gid = stat->st_gid; set_nlink(inode, stat->st_nlink); @@ -668,10 +669,8 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode, inode->i_mtime.tv_sec = stat->st_mtime_sec; inode->i_mtime.tv_nsec = stat->st_mtime_nsec; } - if (stat->st_result_mask & P9_STATS_CTIME) { - inode->i_ctime.tv_sec = stat->st_ctime_sec; - inode->i_ctime.tv_nsec = stat->st_ctime_nsec; - } + if (stat->st_result_mask & P9_STATS_CTIME) + inode_ctime_set(inode, ctime); if (stat->st_result_mask & P9_STATS_UID) inode->i_uid = stat->st_uid; if (stat->st_result_mask & P9_STATS_GID)
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@kernel.org> --- fs/9p/vfs_inode.c | 6 ++++-- fs/9p/vfs_inode_dotl.c | 11 +++++------ 2 files changed, 9 insertions(+), 8 deletions(-)