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.