From: Kefu Chai Date: Tue, 26 Sep 2017 07:49:11 +0000 (+0800) Subject: messages/MOSDPGTemp: add `forced` field X-Git-Tag: v13.0.1~533^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6335bf791003e9e33b2f738ab3da06f3c626537a;p=ceph.git messages/MOSDPGTemp: add `forced` field the monitor is supposed to bypass some checks if `forced` is true. Signed-off-by: Kefu Chai --- diff --git a/src/messages/MOSDPGTemp.h b/src/messages/MOSDPGTemp.h index 3ea7a211c7f4b..1cdaed9b2c2ae 100644 --- a/src/messages/MOSDPGTemp.h +++ b/src/messages/MOSDPGTemp.h @@ -23,9 +23,15 @@ class MOSDPGTemp : public PaxosServiceMessage { public: epoch_t map_epoch = 0; map > pg_temp; + bool forced = false; - MOSDPGTemp(epoch_t e) : PaxosServiceMessage(MSG_OSD_PGTEMP, e), map_epoch(e) { } - MOSDPGTemp() : PaxosServiceMessage(MSG_OSD_PGTEMP, 0) {} + MOSDPGTemp(epoch_t e) + : PaxosServiceMessage(MSG_OSD_PGTEMP, e, HEAD_VERSION, COMPAT_VERSION), + map_epoch(e) + {} + MOSDPGTemp() + : MOSDPGTemp(0) + {} private: ~MOSDPGTemp() override {} @@ -34,19 +40,25 @@ public: paxos_encode(); ::encode(map_epoch, payload); ::encode(pg_temp, payload); + ::encode(forced, payload); } void decode_payload() override { bufferlist::iterator p = payload.begin(); paxos_decode(p); ::decode(map_epoch, p); ::decode(pg_temp, p); + if (header.version >= 2) { + ::decode(forced, p); + } } const char *get_type_name() const override { return "osd_pgtemp"; } void print(ostream &out) const override { out << "osd_pgtemp(e" << map_epoch << " " << pg_temp << " v" << version << ")"; } - +private: + static constexpr int HEAD_VERSION = 2; + static constexpr int COMPAT_VERSION = 1; }; #endif