Approved. Looks good to me. Reviewed-by: Milind Changire <mchangir@redhat,com> On Tue, Jul 25, 2023 at 10:13 AM <xiubli@xxxxxxxxxx> wrote: > > From: Xiubo Li <xiubli@xxxxxxxxxx> > > In ceph mainline it will allow to set the btime in the setattr request > and just add a 'btime' member in the union 'ceph_mds_request_args' and > then bump up the header version to 4. That means the total size of union > 'ceph_mds_request_args' will increase sizeof(struct ceph_timespec) bytes, > but in kclient it will increase the sizeof(setattr_ext) bytes for each > request. > > Since the MDS will always depend on the header's vesion and front_len > members to decode the 'ceph_mds_request_head' struct, at the same time > kclient hasn't supported the 'btime' feature yet in setattr request, > so it's safe to do this change here. > > This will save 48 bytes memories for each request. > > Fixes: 4f1ddb1ea874 ("ceph: implement updated ceph_mds_request_head structure") > Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx> > --- > include/linux/ceph/ceph_fs.h | 24 +++++++++++++----------- > 1 file changed, 13 insertions(+), 11 deletions(-) > > diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h > index ce6064b3e28f..04f769368605 100644 > --- a/include/linux/ceph/ceph_fs.h > +++ b/include/linux/ceph/ceph_fs.h > @@ -462,17 +462,19 @@ union ceph_mds_request_args { > } __attribute__ ((packed)); > > union ceph_mds_request_args_ext { > - union ceph_mds_request_args old; > - struct { > - __le32 mode; > - __le32 uid; > - __le32 gid; > - struct ceph_timespec mtime; > - struct ceph_timespec atime; > - __le64 size, old_size; /* old_size needed by truncate */ > - __le32 mask; /* CEPH_SETATTR_* */ > - struct ceph_timespec btime; > - } __attribute__ ((packed)) setattr_ext; > + union { > + union ceph_mds_request_args old; > + struct { > + __le32 mode; > + __le32 uid; > + __le32 gid; > + struct ceph_timespec mtime; > + struct ceph_timespec atime; > + __le64 size, old_size; /* old_size needed by truncate */ > + __le32 mask; /* CEPH_SETATTR_* */ > + struct ceph_timespec btime; > + } __attribute__ ((packed)) setattr_ext; > + }; > }; > > #define CEPH_MDS_FLAG_REPLAY 1 /* this is a replayed op */ > -- > 2.40.1 > -- Milind