nfs: convert to ctime accessor functions
authorJeff Layton <jlayton@kernel.org>
Wed, 5 Jul 2023 19:01:22 +0000 (15:01 -0400)
committerChristian Brauner <brauner@kernel.org>
Mon, 24 Jul 2023 08:30:01 +0000 (10:30 +0200)
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: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Message-Id: <20230705190309.579783-55-jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/nfs/callback_proc.c
fs/nfs/fscache.h
fs/nfs/inode.c

index c1eda73254e16f938a551a42e1594cd05a90af96..6bed1394d748946e7e10efa756bbed41f3884757 100644 (file)
@@ -59,7 +59,7 @@ __be32 nfs4_callback_getattr(void *argp, void *resp,
        res->change_attr = delegation->change_attr;
        if (nfs_have_writebacks(inode))
                res->change_attr++;
-       res->ctime = inode->i_ctime;
+       res->ctime = inode_get_ctime(inode);
        res->mtime = inode->i_mtime;
        res->bitmap[0] = (FATTR4_WORD0_CHANGE|FATTR4_WORD0_SIZE) &
                args->bitmap[0];
index e1706e736c64605bda307e9f8a14c97d435b8743..2dc64454492b04678ac5357adac9fec8516566ce 100644 (file)
@@ -116,8 +116,8 @@ static inline void nfs_fscache_update_auxdata(struct nfs_fscache_inode_auxdata *
        memset(auxdata, 0, sizeof(*auxdata));
        auxdata->mtime_sec  = inode->i_mtime.tv_sec;
        auxdata->mtime_nsec = inode->i_mtime.tv_nsec;
-       auxdata->ctime_sec  = inode->i_ctime.tv_sec;
-       auxdata->ctime_nsec = inode->i_ctime.tv_nsec;
+       auxdata->ctime_sec  = inode_get_ctime(inode).tv_sec;
+       auxdata->ctime_nsec = inode_get_ctime(inode).tv_nsec;
 
        if (NFS_SERVER(inode)->nfs_client->rpc_ops->version == 4)
                auxdata->change_attr = inode_peek_iversion_raw(inode);
index 8172dd4135a1d41aa6b5363a5a4850b952c0f599..1283fdfa4b0ab363bcfa29f54385fd49d60c2b29 100644 (file)
@@ -514,7 +514,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
 
                memset(&inode->i_atime, 0, sizeof(inode->i_atime));
                memset(&inode->i_mtime, 0, sizeof(inode->i_mtime));
-               memset(&inode->i_ctime, 0, sizeof(inode->i_ctime));
+               inode_set_ctime(inode, 0, 0);
                inode_set_iversion_raw(inode, 0);
                inode->i_size = 0;
                clear_nlink(inode);
@@ -535,7 +535,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
                else if (fattr_supported & NFS_ATTR_FATTR_MTIME)
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_MTIME);
                if (fattr->valid & NFS_ATTR_FATTR_CTIME)
-                       inode->i_ctime = fattr->ctime;
+                       inode_set_ctime_to_ts(inode, fattr->ctime);
                else if (fattr_supported & NFS_ATTR_FATTR_CTIME)
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_CTIME);
                if (fattr->valid & NFS_ATTR_FATTR_CHANGE)
@@ -731,7 +731,7 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr,
                if ((attr->ia_valid & ATTR_GID) != 0)
                        inode->i_gid = attr->ia_gid;
                if (fattr->valid & NFS_ATTR_FATTR_CTIME)
-                       inode->i_ctime = fattr->ctime;
+                       inode_set_ctime_to_ts(inode, fattr->ctime);
                else
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_CHANGE
                                        | NFS_INO_INVALID_CTIME);
@@ -749,7 +749,7 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr,
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_ATIME);
 
                if (fattr->valid & NFS_ATTR_FATTR_CTIME)
-                       inode->i_ctime = fattr->ctime;
+                       inode_set_ctime_to_ts(inode, fattr->ctime);
                else
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_CHANGE
                                        | NFS_INO_INVALID_CTIME);
@@ -765,7 +765,7 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr,
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_MTIME);
 
                if (fattr->valid & NFS_ATTR_FATTR_CTIME)
-                       inode->i_ctime = fattr->ctime;
+                       inode_set_ctime_to_ts(inode, fattr->ctime);
                else
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_CHANGE
                                        | NFS_INO_INVALID_CTIME);
@@ -1444,11 +1444,11 @@ static void nfs_wcc_update_inode(struct inode *inode, struct nfs_fattr *fattr)
                        nfs_set_cache_invalid(inode, NFS_INO_INVALID_XATTR);
        }
        /* If we have atomic WCC data, we may update some attributes */
-       ts = inode->i_ctime;
+       ts = inode_get_ctime(inode);
        if ((fattr->valid & NFS_ATTR_FATTR_PRECTIME)
                        && (fattr->valid & NFS_ATTR_FATTR_CTIME)
                        && timespec64_equal(&ts, &fattr->pre_ctime)) {
-               inode->i_ctime = fattr->ctime;
+               inode_set_ctime_to_ts(inode, fattr->ctime);
        }
 
        ts = inode->i_mtime;
@@ -1510,7 +1510,7 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
                if ((fattr->valid & NFS_ATTR_FATTR_MTIME) && !timespec64_equal(&ts, &fattr->mtime))
                        invalid |= NFS_INO_INVALID_MTIME;
 
-               ts = inode->i_ctime;
+               ts = inode_get_ctime(inode);
                if ((fattr->valid & NFS_ATTR_FATTR_CTIME) && !timespec64_equal(&ts, &fattr->ctime))
                        invalid |= NFS_INO_INVALID_CTIME;
 
@@ -1997,7 +1997,7 @@ int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fa
        }
        if ((fattr->valid & NFS_ATTR_FATTR_CTIME) != 0 &&
                        (fattr->valid & NFS_ATTR_FATTR_PRECTIME) == 0) {
-               fattr->pre_ctime = inode->i_ctime;
+               fattr->pre_ctime = inode_get_ctime(inode);
                fattr->valid |= NFS_ATTR_FATTR_PRECTIME;
        }
        if ((fattr->valid & NFS_ATTR_FATTR_MTIME) != 0 &&
@@ -2190,7 +2190,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
                        save_cache_validity & NFS_INO_INVALID_MTIME;
 
        if (fattr->valid & NFS_ATTR_FATTR_CTIME)
-               inode->i_ctime = fattr->ctime;
+               inode_set_ctime_to_ts(inode, fattr->ctime);
        else if (fattr_supported & NFS_ATTR_FATTR_CTIME)
                nfsi->cache_validity |=
                        save_cache_validity & NFS_INO_INVALID_CTIME;