ceph: make members in struct ceph_mds_request_args_ext a union
authorXiubo Li <xiubli@redhat.com>
Tue, 25 Jul 2023 01:44:40 +0000 (09:44 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 31 Aug 2023 12:56:27 +0000 (14:56 +0200)
commit3af5ae22030cb59fab4fba35f5a2b62f47e14df9
tree99915560d2db6731d5eb1c1fa29b487a4cdcb0b6
parentcd59cdefc2f101bfc99ee5bd38512ebba7b75471
ceph: make members in struct ceph_mds_request_args_ext a union

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@redhat.com>
Reviewed-by: Milind Changire <mchangir@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
include/linux/ceph/ceph_fs.h