include/ceph_fs: do not use anonymous aggregate with member having ctor
GCC-10 fails to compile ceph_fs.h, with following error:
In file included from ../src/include/types.h:27,
from ../src/msg/msg_types.h:23,
from ../src/common/ipaddr.cc:16:
../src/include/ceph_fs.h:891:11: error: member ‘ceph_le32 ceph_mds_caps_body_legacy::<unnamed union>::<unnamed struct>::truncate_seq’ with constructor not allowed in anonymous aggregate
891 | __le32 truncate_seq;
| ^~~~~~~~~~~~
../src/include/ceph_fs.h:892:25: error: member ‘ceph_timespec ceph_mds_caps_body_legacy::<unnamed union>::<unnamed struct>::mtime’ with constructor not allowed in anonymous aggregate
892 | struct ceph_timespec mtime, atime, ctime;
| ^~~~~
../src/include/ceph_fs.h:892:32: error: member ‘ceph_timespec ceph_mds_caps_body_legacy::<unnamed union>::<unnamed struct>::atime’ with constructor not allowed in anonymous aggregate
892 | struct ceph_timespec mtime, atime, ctime;
| ^~~~~
../src/include/ceph_fs.h:892:39: error: member ‘ceph_timespec ceph_mds_caps_body_legacy::<unnamed union>::<unnamed struct>::ctime’ with constructor not allowed in anonymous aggregate
892 | struct ceph_timespec mtime, atime, ctime;
| ^~~~~
because, for instance, `ceph_timespec` has compiler generated
constructor, and it's not allowed by C++17 standard.