Re: [PATCH 06/12] fs/ceph: consistently use `u32` for `time_warp_seq`
From: Viacheslav Dubeyko
Date: Tue Jun 30 2026 - 12:19:09 EST
On Fri, 2026-06-12 at 18:51 +0200, Max Kellermann wrote:
> Previously, both `u32` and `u64` was used with implicit casts. All
> this does is add useless overhead.
>
> This will allow better struct packing in `struct ceph_cap_snap`.
>
> Signed-off-by: Max Kellermann <max.kellermann@xxxxxxxxx>
> ---
> fs/ceph/inode.c | 6 +++---
> fs/ceph/super.h | 4 ++--
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
> index c26217ed2034..17df694fe978 100644
> --- a/fs/ceph/inode.c
> +++ b/fs/ceph/inode.c
> @@ -915,7 +915,7 @@ void ceph_inode_set_subvolume(struct inode
> *inode, u64 subvolume_id)
> }
>
> void ceph_fill_file_time(struct inode *inode, int issued,
> - u64 time_warp_seq, struct timespec64
> *ctime,
> + u32 time_warp_seq, struct timespec64
> *ctime,
> struct timespec64 *mtime, struct timespec64
> *atime)
> {
> struct ceph_client *cl = ceph_inode_to_client(inode);
> @@ -939,7 +939,7 @@ void ceph_fill_file_time(struct inode *inode, int
> issued,
> ceph_seq_cmp(time_warp_seq, ci->i_time_warp_seq)
> > 0) {
> /* the MDS did a utimes() */
> doutc(cl, "mtime %ptSp -> %ptSp tw %d ->
> %d\n", &imtime, mtime,
> - ci->i_time_warp_seq,
> (int)time_warp_seq);
> + ci->i_time_warp_seq, time_warp_seq);
>
> inode_set_mtime_to_ts(inode, *mtime);
> inode_set_atime_to_ts(inode, *atime);
> @@ -971,7 +971,7 @@ void ceph_fill_file_time(struct inode *inode, int
> issued,
> }
> }
> if (warn) /* time_warp_seq shouldn't go backwards */
> - doutc(cl, "%p mds time_warp_seq %llu < %u\n", inode,
> + doutc(cl, "%p mds time_warp_seq %u < %u\n", inode,
> time_warp_seq, ci->i_time_warp_seq);
> }
>
> diff --git a/fs/ceph/super.h b/fs/ceph/super.h
> index 505a1552f355..9b5119b1d0a9 100644
> --- a/fs/ceph/super.h
> +++ b/fs/ceph/super.h
> @@ -266,7 +266,7 @@ struct ceph_cap_snap {
> u64 size;
> u64 change_attr;
> struct timespec64 mtime, atime, ctime, btime;
> - u64 time_warp_seq;
> + u32 time_warp_seq;
> u64 truncate_size;
> u32 truncate_seq;
> bool writing; /* a sync write is still in progress */
> @@ -1091,7 +1091,7 @@ extern int ceph_fill_file_size(struct inode
> *inode, int issued,
> u32 truncate_seq, u64 truncate_size,
> u64 size);
> extern void ceph_inode_set_subvolume(struct inode *inode, u64
> subvolume_id);
> extern void ceph_fill_file_time(struct inode *inode, int issued,
> - u64 time_warp_seq, struct timespec64
> *ctime,
> + u32 time_warp_seq, struct timespec64
> *ctime,
> struct timespec64 *mtime,
> struct timespec64 *atime);
> extern int ceph_fill_inode(struct inode *inode, struct page
> *locked_page,
Makes sense.
Reviewed-by: Viacheslav Dubeyko <slava@xxxxxxxxxxx>
Thanks,
Slava.