diff options
Diffstat (limited to '')
-rw-r--r-- | src/messages/MClientCaps.h | 2 | ||||
-rw-r--r-- | src/messages/MClientSession.h | 17 | ||||
-rw-r--r-- | src/messages/MMDSBeacon.h | 4 | ||||
-rw-r--r-- | src/messages/MMDSScrub.h | 4 | ||||
-rw-r--r-- | src/messages/MMDSScrubStats.h | 2 | ||||
-rw-r--r-- | src/messages/MOSDOp.h | 2 |
6 files changed, 24 insertions, 7 deletions
diff --git a/src/messages/MClientCaps.h b/src/messages/MClientCaps.h index 9d343a4af..96b2cb7d8 100644 --- a/src/messages/MClientCaps.h +++ b/src/messages/MClientCaps.h @@ -57,7 +57,7 @@ private: uint32_t caller_gid = 0; /* advisory CLIENT_CAPS_* flags to send to mds */ - unsigned flags = 0; + uint32_t flags = 0; std::vector<uint8_t> fscrypt_auth; std::vector<uint8_t> fscrypt_file; diff --git a/src/messages/MClientSession.h b/src/messages/MClientSession.h index 7ce165870..37b3fc1d0 100644 --- a/src/messages/MClientSession.h +++ b/src/messages/MClientSession.h @@ -15,22 +15,25 @@ #ifndef CEPH_MCLIENTSESSION_H #define CEPH_MCLIENTSESSION_H +#include "mds/MDSAuthCaps.h" #include "msg/Message.h" #include "mds/mdstypes.h" class MClientSession final : public SafeMessage { private: - static constexpr int HEAD_VERSION = 5; + static constexpr int HEAD_VERSION = 7; static constexpr int COMPAT_VERSION = 1; public: ceph_mds_session_head head; static constexpr unsigned SESSION_BLOCKLISTED = (1<<0); - unsigned flags = 0; + uint32_t flags = 0; std::map<std::string, std::string> metadata; feature_bitset_t supported_features; metric_spec_t metric_spec; + std::vector<MDSCapAuth> cap_auths; + ceph_tid_t oldest_client_tid = UINT64_MAX; int get_op() const { return head.op; } version_t get_seq() const { return head.seq; } @@ -64,6 +67,8 @@ public: out << " seq " << get_seq(); if (get_op() == CEPH_SESSION_RECALL_STATE) out << " max_caps " << head.max_caps << " max_leases " << head.max_leases; + if (!cap_auths.empty()) + out << " cap_auths " << cap_auths; out << ")"; } @@ -81,6 +86,12 @@ public: if (header.version >= 5) { decode(flags, p); } + if (header.version >= 6) { + decode(cap_auths, p); + } + if (header.version >= 7) { + decode(oldest_client_tid, p); + } } void encode_payload(uint64_t features) override { using ceph::encode; @@ -96,6 +107,8 @@ public: encode(supported_features, payload); encode(metric_spec, payload); encode(flags, payload); + encode(cap_auths, payload); + encode(oldest_client_tid, payload); } } private: diff --git a/src/messages/MMDSBeacon.h b/src/messages/MMDSBeacon.h index f2fa150be..d843b0e76 100644 --- a/src/messages/MMDSBeacon.h +++ b/src/messages/MMDSBeacon.h @@ -45,6 +45,7 @@ enum mds_metric_t { MDS_HEALTH_SLOW_REQUEST, MDS_HEALTH_CACHE_OVERSIZED, MDS_HEALTH_SLOW_METADATA_IO, + MDS_HEALTH_CLIENTS_LAGGY, MDS_HEALTH_DUMMY, // not a real health warning, for testing }; @@ -63,6 +64,7 @@ inline const char *mds_metric_name(mds_metric_t m) case MDS_HEALTH_SLOW_REQUEST: return "MDS_SLOW_REQUEST"; case MDS_HEALTH_CACHE_OVERSIZED: return "MDS_CACHE_OVERSIZED"; case MDS_HEALTH_SLOW_METADATA_IO: return "MDS_SLOW_METADATA_IO"; + case MDS_HEALTH_CLIENTS_LAGGY: return "MDS_CLIENTS_LAGGY"; case MDS_HEALTH_DUMMY: return "MDS_DUMMY"; default: return "???"; @@ -97,6 +99,8 @@ inline const char *mds_metric_summary(mds_metric_t m) return "%num% MDSs report oversized cache"; case MDS_HEALTH_SLOW_METADATA_IO: return "%num% MDSs report slow metadata IOs"; + case MDS_HEALTH_CLIENTS_LAGGY: + return "%num% client(s) laggy due to laggy OSDs"; default: return "???"; } diff --git a/src/messages/MMDSScrub.h b/src/messages/MMDSScrub.h index a1bf2b54f..7714b3776 100644 --- a/src/messages/MMDSScrub.h +++ b/src/messages/MMDSScrub.h @@ -130,11 +130,11 @@ private: static constexpr unsigned FLAG_RECURSIVE = 1<<2; static constexpr unsigned FLAG_REPAIR = 1<<3; - int op; + int32_t op; inodeno_t ino; fragset_t frags; std::string tag; inodeno_t origin; - unsigned flags = 0; + uint32_t flags = 0; }; #endif // CEPH_MMDSSCRUB_H diff --git a/src/messages/MMDSScrubStats.h b/src/messages/MMDSScrubStats.h index c60981be5..2cbb7f2f2 100644 --- a/src/messages/MMDSScrubStats.h +++ b/src/messages/MMDSScrubStats.h @@ -68,7 +68,7 @@ protected: ~MMDSScrubStats() override {} private: - unsigned epoch; + uint32_t epoch; std::set<std::string> scrubbing_tags; bool update_scrubbing = false; bool aborting = false; diff --git a/src/messages/MOSDOp.h b/src/messages/MOSDOp.h index 97432d118..b5de1936b 100644 --- a/src/messages/MOSDOp.h +++ b/src/messages/MOSDOp.h @@ -178,7 +178,7 @@ public: partial_decode_needed(true), final_decode_needed(true), bdata_encode(false) { } - MOSDOp(int inc, long tid, const hobject_t& ho, spg_t& _pgid, + MOSDOp(int inc, ceph_tid_t tid, const hobject_t& ho, spg_t& _pgid, epoch_t _osdmap_epoch, int _flags, uint64_t feat) : MOSDFastDispatchOp(CEPH_MSG_OSD_OP, HEAD_VERSION, COMPAT_VERSION), |