gfs2: convert to ctime accessor functions
authorJeff Layton <jlayton@kernel.org>
Wed, 5 Jul 2023 19:01:12 +0000 (15:01 -0400)
committerChristian Brauner <brauner@kernel.org>
Mon, 24 Jul 2023 08:29:59 +0000 (10:29 +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-45-jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/gfs2/acl.c
fs/gfs2/bmap.c
fs/gfs2/dir.c
fs/gfs2/file.c
fs/gfs2/glops.c
fs/gfs2/inode.c
fs/gfs2/super.c
fs/gfs2/xattr.c

index a392aa0..443640e 100644 (file)
@@ -142,7 +142,7 @@ int gfs2_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
 
        ret = __gfs2_set_acl(inode, acl, type);
        if (!ret && mode != inode->i_mode) {
-               inode->i_ctime = current_time(inode);
+               inode_set_ctime_current(inode);
                inode->i_mode = mode;
                mark_inode_dirty(inode);
        }
index 8d611fb..45ea63f 100644 (file)
@@ -1386,7 +1386,7 @@ static int trunc_start(struct inode *inode, u64 newsize)
                ip->i_diskflags |= GFS2_DIF_TRUNC_IN_PROG;
 
        i_size_write(inode, newsize);
-       ip->i_inode.i_mtime = ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
        gfs2_dinode_out(ip, dibh->b_data);
 
        if (journaled)
@@ -1583,8 +1583,7 @@ out_unlock:
 
                        /* Every transaction boundary, we rewrite the dinode
                           to keep its di_blocks current in case of failure. */
-                       ip->i_inode.i_mtime = ip->i_inode.i_ctime =
-                               current_time(&ip->i_inode);
+                       ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
                        gfs2_trans_add_meta(ip->i_gl, dibh);
                        gfs2_dinode_out(ip, dibh->b_data);
                        brelse(dibh);
@@ -1950,7 +1949,7 @@ static int punch_hole(struct gfs2_inode *ip, u64 offset, u64 length)
                gfs2_statfs_change(sdp, 0, +btotal, 0);
                gfs2_quota_change(ip, -(s64)btotal, ip->i_inode.i_uid,
                                  ip->i_inode.i_gid);
-               ip->i_inode.i_mtime = ip->i_inode.i_ctime = current_time(&ip->i_inode);
+               ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
                gfs2_trans_add_meta(ip->i_gl, dibh);
                gfs2_dinode_out(ip, dibh->b_data);
                up_write(&ip->i_rw_mutex);
@@ -1993,7 +1992,7 @@ static int trunc_end(struct gfs2_inode *ip)
                gfs2_buffer_clear_tail(dibh, sizeof(struct gfs2_dinode));
                gfs2_ordered_del_inode(ip);
        }
-       ip->i_inode.i_mtime = ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
        ip->i_diskflags &= ~GFS2_DIF_TRUNC_IN_PROG;
 
        gfs2_trans_add_meta(ip->i_gl, dibh);
@@ -2094,7 +2093,7 @@ static int do_grow(struct inode *inode, u64 size)
                goto do_end_trans;
 
        truncate_setsize(inode, size);
-       ip->i_inode.i_mtime = ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
        gfs2_trans_add_meta(ip->i_gl, dibh);
        gfs2_dinode_out(ip, dibh->b_data);
        brelse(dibh);
index 54a6d17..1a2afa8 100644 (file)
@@ -130,7 +130,7 @@ static int gfs2_dir_write_stuffed(struct gfs2_inode *ip, const char *buf,
        memcpy(dibh->b_data + offset + sizeof(struct gfs2_dinode), buf, size);
        if (ip->i_inode.i_size < offset + size)
                i_size_write(&ip->i_inode, offset + size);
-       ip->i_inode.i_mtime = ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
        gfs2_dinode_out(ip, dibh->b_data);
 
        brelse(dibh);
@@ -227,7 +227,7 @@ out:
 
        if (ip->i_inode.i_size < offset + copied)
                i_size_write(&ip->i_inode, offset + copied);
-       ip->i_inode.i_mtime = ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
 
        gfs2_trans_add_meta(ip->i_gl, dibh);
        gfs2_dinode_out(ip, dibh->b_data);
@@ -1814,7 +1814,7 @@ int gfs2_dir_add(struct inode *inode, const struct qstr *name,
                        gfs2_inum_out(nip, dent);
                        dent->de_type = cpu_to_be16(IF2DT(nip->i_inode.i_mode));
                        dent->de_rahead = cpu_to_be16(gfs2_inode_ra_len(nip));
-                       tv = current_time(&ip->i_inode);
+                       tv = inode_set_ctime_current(&ip->i_inode);
                        if (ip->i_diskflags & GFS2_DIF_EXHASH) {
                                leaf = (struct gfs2_leaf *)bh->b_data;
                                be16_add_cpu(&leaf->lf_entries, 1);
@@ -1825,7 +1825,7 @@ int gfs2_dir_add(struct inode *inode, const struct qstr *name,
                        da->bh = NULL;
                        brelse(bh);
                        ip->i_entries++;
-                       ip->i_inode.i_mtime = ip->i_inode.i_ctime = tv;
+                       ip->i_inode.i_mtime = tv;
                        if (S_ISDIR(nip->i_inode.i_mode))
                                inc_nlink(&ip->i_inode);
                        mark_inode_dirty(inode);
@@ -1876,7 +1876,7 @@ int gfs2_dir_del(struct gfs2_inode *dip, const struct dentry *dentry)
        const struct qstr *name = &dentry->d_name;
        struct gfs2_dirent *dent, *prev = NULL;
        struct buffer_head *bh;
-       struct timespec64 tv = current_time(&dip->i_inode);
+       struct timespec64 tv;
 
        /* Returns _either_ the entry (if its first in block) or the
           previous entry otherwise */
@@ -1896,6 +1896,7 @@ int gfs2_dir_del(struct gfs2_inode *dip, const struct dentry *dentry)
        }
 
        dirent_del(dip, bh, prev, dent);
+       tv = inode_set_ctime_current(&dip->i_inode);
        if (dip->i_diskflags & GFS2_DIF_EXHASH) {
                struct gfs2_leaf *leaf = (struct gfs2_leaf *)bh->b_data;
                u16 entries = be16_to_cpu(leaf->lf_entries);
@@ -1910,7 +1911,7 @@ int gfs2_dir_del(struct gfs2_inode *dip, const struct dentry *dentry)
        if (!dip->i_entries)
                gfs2_consist_inode(dip);
        dip->i_entries--;
-       dip->i_inode.i_mtime = dip->i_inode.i_ctime = tv;
+       dip->i_inode.i_mtime =  tv;
        if (d_is_dir(dentry))
                drop_nlink(&dip->i_inode);
        mark_inode_dirty(&dip->i_inode);
@@ -1951,7 +1952,7 @@ int gfs2_dir_mvino(struct gfs2_inode *dip, const struct qstr *filename,
        dent->de_type = cpu_to_be16(new_type);
        brelse(bh);
 
-       dip->i_inode.i_mtime = dip->i_inode.i_ctime = current_time(&dip->i_inode);
+       dip->i_inode.i_mtime = inode_set_ctime_current(&dip->i_inode);
        mark_inode_dirty_sync(&dip->i_inode);
        return 0;
 }
index 1bf3c44..ecbfbc6 100644 (file)
@@ -260,7 +260,7 @@ static int do_gfs2_set_flags(struct inode *inode, u32 reqflags, u32 mask)
        error = gfs2_meta_inode_buffer(ip, &bh);
        if (error)
                goto out_trans_end;
-       inode->i_ctime = current_time(inode);
+       inode_set_ctime_current(inode);
        gfs2_trans_add_meta(ip->i_gl, bh);
        ip->i_diskflags = new_flags;
        gfs2_dinode_out(ip, bh->b_data);
index 5431932..aecdac3 100644 (file)
@@ -437,8 +437,8 @@ static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf)
                inode->i_atime = atime;
        inode->i_mtime.tv_sec = be64_to_cpu(str->di_mtime);
        inode->i_mtime.tv_nsec = be32_to_cpu(str->di_mtime_nsec);
-       inode->i_ctime.tv_sec = be64_to_cpu(str->di_ctime);
-       inode->i_ctime.tv_nsec = be32_to_cpu(str->di_ctime_nsec);
+       inode_set_ctime(inode, be64_to_cpu(str->di_ctime),
+                       be32_to_cpu(str->di_ctime_nsec));
 
        ip->i_goal = be64_to_cpu(str->di_goal_meta);
        ip->i_generation = be64_to_cpu(str->di_generation);
index 17c994a..2ded6c8 100644 (file)
@@ -690,7 +690,7 @@ static int gfs2_create_inode(struct inode *dir, struct dentry *dentry,
        set_nlink(inode, S_ISDIR(mode) ? 2 : 1);
        inode->i_rdev = dev;
        inode->i_size = size;
-       inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
+       inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
        munge_mode_uid_gid(dip, inode);
        check_and_update_goal(dip);
        ip->i_goal = dip->i_goal;
@@ -1029,7 +1029,7 @@ static int gfs2_link(struct dentry *old_dentry, struct inode *dir,
 
        gfs2_trans_add_meta(ip->i_gl, dibh);
        inc_nlink(&ip->i_inode);
-       ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       inode_set_ctime_current(&ip->i_inode);
        ihold(inode);
        d_instantiate(dentry, inode);
        mark_inode_dirty(inode);
@@ -1114,7 +1114,7 @@ static int gfs2_unlink_inode(struct gfs2_inode *dip,
                return error;
 
        ip->i_entries = 0;
-       inode->i_ctime = current_time(inode);
+       inode_set_ctime_current(inode);
        if (S_ISDIR(inode->i_mode))
                clear_nlink(inode);
        else
@@ -1371,7 +1371,7 @@ static int update_moved_ino(struct gfs2_inode *ip, struct gfs2_inode *ndip,
        if (dir_rename)
                return gfs2_dir_mvino(ip, &gfs2_qdotdot, ndip, DT_DIR);
 
-       ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       inode_set_ctime_current(&ip->i_inode);
        mark_inode_dirty_sync(&ip->i_inode);
        return 0;
 }
index 9f4d5d6..ec0296b 100644 (file)
@@ -412,7 +412,7 @@ void gfs2_dinode_out(const struct gfs2_inode *ip, void *buf)
        str->di_blocks = cpu_to_be64(gfs2_get_inode_blocks(inode));
        str->di_atime = cpu_to_be64(inode->i_atime.tv_sec);
        str->di_mtime = cpu_to_be64(inode->i_mtime.tv_sec);
-       str->di_ctime = cpu_to_be64(inode->i_ctime.tv_sec);
+       str->di_ctime = cpu_to_be64(inode_get_ctime(inode).tv_sec);
 
        str->di_goal_meta = cpu_to_be64(ip->i_goal);
        str->di_goal_data = cpu_to_be64(ip->i_goal);
@@ -429,7 +429,7 @@ void gfs2_dinode_out(const struct gfs2_inode *ip, void *buf)
        str->di_eattr = cpu_to_be64(ip->i_eattr);
        str->di_atime_nsec = cpu_to_be32(inode->i_atime.tv_nsec);
        str->di_mtime_nsec = cpu_to_be32(inode->i_mtime.tv_nsec);
-       str->di_ctime_nsec = cpu_to_be32(inode->i_ctime.tv_nsec);
+       str->di_ctime_nsec = cpu_to_be32(inode_get_ctime(inode).tv_nsec);
 }
 
 /**
index 93b36d0..4fea70c 100644 (file)
@@ -311,7 +311,7 @@ static int ea_dealloc_unstuffed(struct gfs2_inode *ip, struct buffer_head *bh,
                ea->ea_num_ptrs = 0;
        }
 
-       ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       inode_set_ctime_current(&ip->i_inode);
        __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
        gfs2_trans_end(sdp);
@@ -763,7 +763,7 @@ static int ea_alloc_skeleton(struct gfs2_inode *ip, struct gfs2_ea_request *er,
        if (error)
                goto out_end_trans;
 
-       ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       inode_set_ctime_current(&ip->i_inode);
        __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
 out_end_trans:
@@ -888,7 +888,7 @@ static int ea_set_simple_noalloc(struct gfs2_inode *ip, struct buffer_head *bh,
        if (es->es_el)
                ea_set_remove_stuffed(ip, es->es_el);
 
-       ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       inode_set_ctime_current(&ip->i_inode);
        __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
        gfs2_trans_end(GFS2_SB(&ip->i_inode));
@@ -1106,7 +1106,7 @@ static int ea_remove_stuffed(struct gfs2_inode *ip, struct gfs2_ea_location *el)
                ea->ea_type = GFS2_EATYPE_UNUSED;
        }
 
-       ip->i_inode.i_ctime = current_time(&ip->i_inode);
+       inode_set_ctime_current(&ip->i_inode);
        __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
        gfs2_trans_end(GFS2_SB(&ip->i_inode));