nfsd: convert to new timestamp accessors
authorJeff Layton <jlayton@kernel.org>
Wed, 4 Oct 2023 18:52:37 +0000 (14:52 -0400)
committerChristian Brauner <brauner@kernel.org>
Wed, 18 Oct 2023 12:08:24 +0000 (14:08 +0200)
Convert to using the new inode timestamp accessor functions.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://lore.kernel.org/r/20231004185347.80880-50-jlayton@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/nfsd/blocklayout.c
fs/nfsd/nfs3proc.c
fs/nfsd/nfs4proc.c
fs/nfsd/nfsctl.c
fs/nfsd/vfs.c

index 01d7fd108cf3df6bd1abdd050c4a75c14b34fd3d..46fd74d91ea929d31d173deefe485372b80cd8b4 100644 (file)
@@ -117,12 +117,13 @@ static __be32
 nfsd4_block_commit_blocks(struct inode *inode, struct nfsd4_layoutcommit *lcp,
                struct iomap *iomaps, int nr_iomaps)
 {
+       struct timespec64 mtime = inode_get_mtime(inode);
        loff_t new_size = lcp->lc_last_wr + 1;
        struct iattr iattr = { .ia_valid = 0 };
        int error;
 
        if (lcp->lc_mtime.tv_nsec == UTIME_NOW ||
-           timespec64_compare(&lcp->lc_mtime, &inode->i_mtime) < 0)
+           timespec64_compare(&lcp->lc_mtime, &mtime) < 0)
                lcp->lc_mtime = current_time(inode);
        iattr.ia_valid |= ATTR_ATIME | ATTR_CTIME | ATTR_MTIME;
        iattr.ia_atime = iattr.ia_ctime = iattr.ia_mtime = lcp->lc_mtime;
index 268ef57751c48cec019224b2dc0225ebe1d78403..666bad8182e579357232d2c55eb085f1cfc78e96 100644 (file)
@@ -294,8 +294,8 @@ nfsd3_create_file(struct svc_rqst *rqstp, struct svc_fh *fhp,
                        status = nfserr_exist;
                        break;
                case NFS3_CREATE_EXCLUSIVE:
-                       if (d_inode(child)->i_mtime.tv_sec == v_mtime &&
-                           d_inode(child)->i_atime.tv_sec == v_atime &&
+                       if (inode_get_mtime_sec(d_inode(child)) == v_mtime &&
+                           inode_get_atime_sec(d_inode(child)) == v_atime &&
                            d_inode(child)->i_size == 0) {
                                break;
                        }
index 4199ede0583c7d903939e60cde9b3365a2e4bef1..e818e4023519766ad7c2a913cf6cd07cae1208cc 100644 (file)
@@ -322,8 +322,8 @@ nfsd4_create_file(struct svc_rqst *rqstp, struct svc_fh *fhp,
                        status = nfserr_exist;
                        break;
                case NFS4_CREATE_EXCLUSIVE:
-                       if (d_inode(child)->i_mtime.tv_sec == v_mtime &&
-                           d_inode(child)->i_atime.tv_sec == v_atime &&
+                       if (inode_get_mtime_sec(d_inode(child)) == v_mtime &&
+                           inode_get_atime_sec(d_inode(child)) == v_atime &&
                            d_inode(child)->i_size == 0) {
                                open->op_created = true;
                                break;          /* subtle */
@@ -331,8 +331,8 @@ nfsd4_create_file(struct svc_rqst *rqstp, struct svc_fh *fhp,
                        status = nfserr_exist;
                        break;
                case NFS4_CREATE_EXCLUSIVE4_1:
-                       if (d_inode(child)->i_mtime.tv_sec == v_mtime &&
-                           d_inode(child)->i_atime.tv_sec == v_atime &&
+                       if (inode_get_mtime_sec(d_inode(child)) == v_mtime &&
+                           inode_get_atime_sec(d_inode(child)) == v_atime &&
                            d_inode(child)->i_size == 0) {
                                open->op_created = true;
                                goto set_attr;  /* subtle */
index 7ed02fb88a362cc3ae30fc17a3922d04417845e3..846559e4769b928c13df6ccb95ce76de47612bd4 100644 (file)
@@ -1132,7 +1132,7 @@ static struct inode *nfsd_get_inode(struct super_block *sb, umode_t mode)
        /* Following advice from simple_fill_super documentation: */
        inode->i_ino = iunique(sb, NFSD_MaxReserved);
        inode->i_mode = mode;
-       inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
+       simple_inode_init_ts(inode);
        switch (mode & S_IFMT) {
        case S_IFDIR:
                inode->i_fop = &simple_dir_operations;
index 48260cf68fde8b73510ff7cc5a833cc8b5e66e84..0144648c3e4db21f19b66fbd94e0b5da755c76c5 100644 (file)
@@ -520,7 +520,7 @@ nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp,
 
        nfsd_sanitize_attrs(inode, iap);
 
-       if (check_guard && guardtime != inode_get_ctime(inode).tv_sec)
+       if (check_guard && guardtime != inode_get_ctime_sec(inode))
                return nfserr_notsync;
 
        /*