From 82d7d2094116b69f861728028de88d5736002126 Mon Sep 17 00:00:00 2001 From: Xiubo Li Date: Tue, 5 Jul 2022 11:47:16 +0800 Subject: [PATCH] ceph_fs.h: switch to use its own encode/decode helpers Prepare switching num_retry and num_fwd to __le32. Fixes: https://tracker.ceph.com/issues/57854 Signed-off-by: Xiubo Li --- src/include/ceph_fs.h | 34 ++++++++++++++++++++++++++++++++++ src/include/types.h | 1 - 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/include/ceph_fs.h b/src/include/ceph_fs.h index c83ffa4eec63e..f2d8a2d242e83 100644 --- a/src/include/ceph_fs.h +++ b/src/include/ceph_fs.h @@ -14,6 +14,8 @@ #include "msgr.h" #include "rados.h" +#include "include/encoding.h" +#include "include/denc.h" /* * The data structures defined here are shared between Linux kernel and @@ -639,6 +641,38 @@ struct ceph_mds_request_head { union ceph_mds_request_args args; } __attribute__ ((packed)); +void inline encode(const struct ceph_mds_request_head& h, ceph::buffer::list& bl) { + using ceph::encode; + encode(h.version, bl); + encode(h.oldest_client_tid, bl); + encode(h.mdsmap_epoch, bl); + encode(h.flags, bl); + encode(h.num_retry, bl); + encode(h.num_fwd, bl); + encode(h.num_releases, bl); + encode(h.op, bl); + encode(h.caller_uid, bl); + encode(h.caller_gid, bl); + encode(h.ino, bl); + bl.append((char*)&h.args, sizeof(h.args)); +} + +void inline decode(struct ceph_mds_request_head& h, ceph::buffer::list::const_iterator& bl) { + using ceph::decode; + decode(h.version, bl); + decode(h.oldest_client_tid, bl); + decode(h.mdsmap_epoch, bl); + decode(h.flags, bl); + decode(h.num_retry, bl); + decode(h.num_fwd, bl); + decode(h.num_releases, bl); + decode(h.op, bl); + decode(h.caller_uid, bl); + decode(h.caller_gid, bl); + decode(h.ino, bl); + bl.copy(sizeof(h.args), (char*)&(h.args)); +} + /* cap/lease release record */ struct ceph_mds_request_release { __le64 ino, cap_id; /* ino and unique cap id */ diff --git a/src/include/types.h b/src/include/types.h index 12a0b2a6dbff8..a76360db4035a 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -320,7 +320,6 @@ WRITE_RAW_ENCODER(ceph_file_layout) WRITE_RAW_ENCODER(ceph_dir_layout) WRITE_RAW_ENCODER(ceph_mds_session_head) WRITE_RAW_ENCODER(ceph_mds_request_head_legacy) -WRITE_RAW_ENCODER(ceph_mds_request_head) WRITE_RAW_ENCODER(ceph_mds_request_release) WRITE_RAW_ENCODER(ceph_filelock) WRITE_RAW_ENCODER(ceph_mds_caps_head) -- 2.39.5