gfs2: convert to new timestamp accessors
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-38-jlayton@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
3c0d5df2d0
commit
580f721b6f
@ -1386,7 +1386,7 @@ static int trunc_start(struct inode *inode, u64 newsize)
|
|||||||
ip->i_diskflags |= GFS2_DIF_TRUNC_IN_PROG;
|
ip->i_diskflags |= GFS2_DIF_TRUNC_IN_PROG;
|
||||||
|
|
||||||
i_size_write(inode, newsize);
|
i_size_write(inode, newsize);
|
||||||
ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
|
inode_set_mtime_to_ts(&ip->i_inode, inode_set_ctime_current(&ip->i_inode));
|
||||||
gfs2_dinode_out(ip, dibh->b_data);
|
gfs2_dinode_out(ip, dibh->b_data);
|
||||||
|
|
||||||
if (journaled)
|
if (journaled)
|
||||||
@ -1583,7 +1583,7 @@ out_unlock:
|
|||||||
|
|
||||||
/* Every transaction boundary, we rewrite the dinode
|
/* Every transaction boundary, we rewrite the dinode
|
||||||
to keep its di_blocks current in case of failure. */
|
to keep its di_blocks current in case of failure. */
|
||||||
ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
|
inode_set_mtime_to_ts(&ip->i_inode, inode_set_ctime_current(&ip->i_inode));
|
||||||
gfs2_trans_add_meta(ip->i_gl, dibh);
|
gfs2_trans_add_meta(ip->i_gl, dibh);
|
||||||
gfs2_dinode_out(ip, dibh->b_data);
|
gfs2_dinode_out(ip, dibh->b_data);
|
||||||
brelse(dibh);
|
brelse(dibh);
|
||||||
@ -1949,7 +1949,7 @@ static int punch_hole(struct gfs2_inode *ip, u64 offset, u64 length)
|
|||||||
gfs2_statfs_change(sdp, 0, +btotal, 0);
|
gfs2_statfs_change(sdp, 0, +btotal, 0);
|
||||||
gfs2_quota_change(ip, -(s64)btotal, ip->i_inode.i_uid,
|
gfs2_quota_change(ip, -(s64)btotal, ip->i_inode.i_uid,
|
||||||
ip->i_inode.i_gid);
|
ip->i_inode.i_gid);
|
||||||
ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
|
inode_set_mtime_to_ts(&ip->i_inode, inode_set_ctime_current(&ip->i_inode));
|
||||||
gfs2_trans_add_meta(ip->i_gl, dibh);
|
gfs2_trans_add_meta(ip->i_gl, dibh);
|
||||||
gfs2_dinode_out(ip, dibh->b_data);
|
gfs2_dinode_out(ip, dibh->b_data);
|
||||||
up_write(&ip->i_rw_mutex);
|
up_write(&ip->i_rw_mutex);
|
||||||
@ -1992,7 +1992,7 @@ static int trunc_end(struct gfs2_inode *ip)
|
|||||||
gfs2_buffer_clear_tail(dibh, sizeof(struct gfs2_dinode));
|
gfs2_buffer_clear_tail(dibh, sizeof(struct gfs2_dinode));
|
||||||
gfs2_ordered_del_inode(ip);
|
gfs2_ordered_del_inode(ip);
|
||||||
}
|
}
|
||||||
ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
|
inode_set_mtime_to_ts(&ip->i_inode, inode_set_ctime_current(&ip->i_inode));
|
||||||
ip->i_diskflags &= ~GFS2_DIF_TRUNC_IN_PROG;
|
ip->i_diskflags &= ~GFS2_DIF_TRUNC_IN_PROG;
|
||||||
|
|
||||||
gfs2_trans_add_meta(ip->i_gl, dibh);
|
gfs2_trans_add_meta(ip->i_gl, dibh);
|
||||||
@ -2093,7 +2093,7 @@ static int do_grow(struct inode *inode, u64 size)
|
|||||||
goto do_end_trans;
|
goto do_end_trans;
|
||||||
|
|
||||||
truncate_setsize(inode, size);
|
truncate_setsize(inode, size);
|
||||||
ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
|
inode_set_mtime_to_ts(&ip->i_inode, inode_set_ctime_current(&ip->i_inode));
|
||||||
gfs2_trans_add_meta(ip->i_gl, dibh);
|
gfs2_trans_add_meta(ip->i_gl, dibh);
|
||||||
gfs2_dinode_out(ip, dibh->b_data);
|
gfs2_dinode_out(ip, dibh->b_data);
|
||||||
brelse(dibh);
|
brelse(dibh);
|
||||||
|
@ -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);
|
memcpy(dibh->b_data + offset + sizeof(struct gfs2_dinode), buf, size);
|
||||||
if (ip->i_inode.i_size < offset + size)
|
if (ip->i_inode.i_size < offset + size)
|
||||||
i_size_write(&ip->i_inode, offset + size);
|
i_size_write(&ip->i_inode, offset + size);
|
||||||
ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
|
inode_set_mtime_to_ts(&ip->i_inode, inode_set_ctime_current(&ip->i_inode));
|
||||||
gfs2_dinode_out(ip, dibh->b_data);
|
gfs2_dinode_out(ip, dibh->b_data);
|
||||||
|
|
||||||
brelse(dibh);
|
brelse(dibh);
|
||||||
@ -227,7 +227,7 @@ out:
|
|||||||
|
|
||||||
if (ip->i_inode.i_size < offset + copied)
|
if (ip->i_inode.i_size < offset + copied)
|
||||||
i_size_write(&ip->i_inode, offset + copied);
|
i_size_write(&ip->i_inode, offset + copied);
|
||||||
ip->i_inode.i_mtime = inode_set_ctime_current(&ip->i_inode);
|
inode_set_mtime_to_ts(&ip->i_inode, inode_set_ctime_current(&ip->i_inode));
|
||||||
|
|
||||||
gfs2_trans_add_meta(ip->i_gl, dibh);
|
gfs2_trans_add_meta(ip->i_gl, dibh);
|
||||||
gfs2_dinode_out(ip, dibh->b_data);
|
gfs2_dinode_out(ip, dibh->b_data);
|
||||||
@ -1825,7 +1825,7 @@ int gfs2_dir_add(struct inode *inode, const struct qstr *name,
|
|||||||
da->bh = NULL;
|
da->bh = NULL;
|
||||||
brelse(bh);
|
brelse(bh);
|
||||||
ip->i_entries++;
|
ip->i_entries++;
|
||||||
ip->i_inode.i_mtime = tv;
|
inode_set_mtime_to_ts(&ip->i_inode, tv);
|
||||||
if (S_ISDIR(nip->i_inode.i_mode))
|
if (S_ISDIR(nip->i_inode.i_mode))
|
||||||
inc_nlink(&ip->i_inode);
|
inc_nlink(&ip->i_inode);
|
||||||
mark_inode_dirty(inode);
|
mark_inode_dirty(inode);
|
||||||
@ -1911,7 +1911,7 @@ int gfs2_dir_del(struct gfs2_inode *dip, const struct dentry *dentry)
|
|||||||
if (!dip->i_entries)
|
if (!dip->i_entries)
|
||||||
gfs2_consist_inode(dip);
|
gfs2_consist_inode(dip);
|
||||||
dip->i_entries--;
|
dip->i_entries--;
|
||||||
dip->i_inode.i_mtime = tv;
|
inode_set_mtime_to_ts(&dip->i_inode, tv);
|
||||||
if (d_is_dir(dentry))
|
if (d_is_dir(dentry))
|
||||||
drop_nlink(&dip->i_inode);
|
drop_nlink(&dip->i_inode);
|
||||||
mark_inode_dirty(&dip->i_inode);
|
mark_inode_dirty(&dip->i_inode);
|
||||||
@ -1952,7 +1952,7 @@ int gfs2_dir_mvino(struct gfs2_inode *dip, const struct qstr *filename,
|
|||||||
dent->de_type = cpu_to_be16(new_type);
|
dent->de_type = cpu_to_be16(new_type);
|
||||||
brelse(bh);
|
brelse(bh);
|
||||||
|
|
||||||
dip->i_inode.i_mtime = inode_set_ctime_current(&dip->i_inode);
|
inode_set_mtime_to_ts(&dip->i_inode, inode_set_ctime_current(&dip->i_inode));
|
||||||
mark_inode_dirty_sync(&dip->i_inode);
|
mark_inode_dirty_sync(&dip->i_inode);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -403,7 +403,7 @@ static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf)
|
|||||||
{
|
{
|
||||||
struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
|
struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
|
||||||
const struct gfs2_dinode *str = buf;
|
const struct gfs2_dinode *str = buf;
|
||||||
struct timespec64 atime;
|
struct timespec64 atime, iatime;
|
||||||
u16 height, depth;
|
u16 height, depth;
|
||||||
umode_t mode = be32_to_cpu(str->di_mode);
|
umode_t mode = be32_to_cpu(str->di_mode);
|
||||||
struct inode *inode = &ip->i_inode;
|
struct inode *inode = &ip->i_inode;
|
||||||
@ -433,10 +433,11 @@ static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf)
|
|||||||
gfs2_set_inode_blocks(inode, be64_to_cpu(str->di_blocks));
|
gfs2_set_inode_blocks(inode, be64_to_cpu(str->di_blocks));
|
||||||
atime.tv_sec = be64_to_cpu(str->di_atime);
|
atime.tv_sec = be64_to_cpu(str->di_atime);
|
||||||
atime.tv_nsec = be32_to_cpu(str->di_atime_nsec);
|
atime.tv_nsec = be32_to_cpu(str->di_atime_nsec);
|
||||||
if (timespec64_compare(&inode->i_atime, &atime) < 0)
|
iatime = inode_get_atime(inode);
|
||||||
inode->i_atime = atime;
|
if (timespec64_compare(&iatime, &atime) < 0)
|
||||||
inode->i_mtime.tv_sec = be64_to_cpu(str->di_mtime);
|
inode_set_atime_to_ts(inode, atime);
|
||||||
inode->i_mtime.tv_nsec = be32_to_cpu(str->di_mtime_nsec);
|
inode_set_mtime(inode, be64_to_cpu(str->di_mtime),
|
||||||
|
be32_to_cpu(str->di_mtime_nsec));
|
||||||
inode_set_ctime(inode, be64_to_cpu(str->di_ctime),
|
inode_set_ctime(inode, be64_to_cpu(str->di_ctime),
|
||||||
be32_to_cpu(str->di_ctime_nsec));
|
be32_to_cpu(str->di_ctime_nsec));
|
||||||
|
|
||||||
|
@ -185,8 +185,9 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
|
|||||||
set_bit(GLF_INSTANTIATE_NEEDED, &ip->i_gl->gl_flags);
|
set_bit(GLF_INSTANTIATE_NEEDED, &ip->i_gl->gl_flags);
|
||||||
|
|
||||||
/* Lowest possible timestamp; will be overwritten in gfs2_dinode_in. */
|
/* Lowest possible timestamp; will be overwritten in gfs2_dinode_in. */
|
||||||
inode->i_atime.tv_sec = 1LL << (8 * sizeof(inode->i_atime.tv_sec) - 1);
|
inode_set_atime(inode,
|
||||||
inode->i_atime.tv_nsec = 0;
|
1LL << (8 * sizeof(inode_get_atime_sec(inode)) - 1),
|
||||||
|
0);
|
||||||
|
|
||||||
glock_set_object(ip->i_gl, ip);
|
glock_set_object(ip->i_gl, ip);
|
||||||
|
|
||||||
@ -696,7 +697,7 @@ static int gfs2_create_inode(struct inode *dir, struct dentry *dentry,
|
|||||||
set_nlink(inode, S_ISDIR(mode) ? 2 : 1);
|
set_nlink(inode, S_ISDIR(mode) ? 2 : 1);
|
||||||
inode->i_rdev = dev;
|
inode->i_rdev = dev;
|
||||||
inode->i_size = size;
|
inode->i_size = size;
|
||||||
inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
|
simple_inode_init_ts(inode);
|
||||||
munge_mode_uid_gid(dip, inode);
|
munge_mode_uid_gid(dip, inode);
|
||||||
check_and_update_goal(dip);
|
check_and_update_goal(dip);
|
||||||
ip->i_goal = dip->i_goal;
|
ip->i_goal = dip->i_goal;
|
||||||
|
@ -886,7 +886,7 @@ static int gfs2_adjust_quota(struct gfs2_sbd *sdp, loff_t loc,
|
|||||||
size = loc + sizeof(struct gfs2_quota);
|
size = loc + sizeof(struct gfs2_quota);
|
||||||
if (size > inode->i_size)
|
if (size > inode->i_size)
|
||||||
i_size_write(inode, size);
|
i_size_write(inode, size);
|
||||||
inode->i_mtime = inode_set_ctime_current(inode);
|
inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
|
||||||
mark_inode_dirty(inode);
|
mark_inode_dirty(inode);
|
||||||
set_bit(QDF_REFRESH, &qd->qd_flags);
|
set_bit(QDF_REFRESH, &qd->qd_flags);
|
||||||
}
|
}
|
||||||
|
@ -410,9 +410,9 @@ void gfs2_dinode_out(const struct gfs2_inode *ip, void *buf)
|
|||||||
str->di_nlink = cpu_to_be32(inode->i_nlink);
|
str->di_nlink = cpu_to_be32(inode->i_nlink);
|
||||||
str->di_size = cpu_to_be64(i_size_read(inode));
|
str->di_size = cpu_to_be64(i_size_read(inode));
|
||||||
str->di_blocks = cpu_to_be64(gfs2_get_inode_blocks(inode));
|
str->di_blocks = cpu_to_be64(gfs2_get_inode_blocks(inode));
|
||||||
str->di_atime = cpu_to_be64(inode->i_atime.tv_sec);
|
str->di_atime = cpu_to_be64(inode_get_atime_sec(inode));
|
||||||
str->di_mtime = cpu_to_be64(inode->i_mtime.tv_sec);
|
str->di_mtime = cpu_to_be64(inode_get_mtime_sec(inode));
|
||||||
str->di_ctime = cpu_to_be64(inode_get_ctime(inode).tv_sec);
|
str->di_ctime = cpu_to_be64(inode_get_ctime_sec(inode));
|
||||||
|
|
||||||
str->di_goal_meta = cpu_to_be64(ip->i_goal);
|
str->di_goal_meta = cpu_to_be64(ip->i_goal);
|
||||||
str->di_goal_data = cpu_to_be64(ip->i_goal);
|
str->di_goal_data = cpu_to_be64(ip->i_goal);
|
||||||
@ -427,9 +427,9 @@ void gfs2_dinode_out(const struct gfs2_inode *ip, void *buf)
|
|||||||
str->di_entries = cpu_to_be32(ip->i_entries);
|
str->di_entries = cpu_to_be32(ip->i_entries);
|
||||||
|
|
||||||
str->di_eattr = cpu_to_be64(ip->i_eattr);
|
str->di_eattr = cpu_to_be64(ip->i_eattr);
|
||||||
str->di_atime_nsec = cpu_to_be32(inode->i_atime.tv_nsec);
|
str->di_atime_nsec = cpu_to_be32(inode_get_atime_nsec(inode));
|
||||||
str->di_mtime_nsec = cpu_to_be32(inode->i_mtime.tv_nsec);
|
str->di_mtime_nsec = cpu_to_be32(inode_get_mtime_nsec(inode));
|
||||||
str->di_ctime_nsec = cpu_to_be32(inode_get_ctime(inode).tv_nsec);
|
str->di_ctime_nsec = cpu_to_be32(inode_get_ctime_nsec(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user