File tree Expand file tree Collapse file tree 3 files changed +18
-18
lines changed
Expand file tree Collapse file tree 3 files changed +18
-18
lines changed Original file line number Diff line number Diff line change @@ -283,9 +283,8 @@ void MDSRank::quiesce_cluster_update() {
283283 }
284284 auto addrs = mdsmap->get_info_gid (membership.leader ).addrs ;
285285
286- auto ack_msg = make_message<MMDSQuiesceDbAck>();
286+ auto ack_msg = make_message<MMDSQuiesceDbAck>(QuiesceDbPeerAck{me, std::move (ack)} );
287287 dout (10 ) << " sending ack " << ack << " to the leader " << membership.leader << dendl;
288- ack_msg->encode_payload_from ({me, std::move (ack)});
289288 return send_message_mds (ack_msg, addrs);
290289 }
291290 };
@@ -297,9 +296,8 @@ void MDSRank::quiesce_cluster_update() {
297296 return -ENOENT;
298297 }
299298 auto addrs = mdsmap->get_info_gid (to).addrs ;
300- auto listing_msg = make_message<MMDSQuiesceDbListing>();
299+ auto listing_msg = make_message<MMDSQuiesceDbListing>(QuiesceDbPeerListing{me, std::move (db)} );
301300 dout (10 ) << " sending listing " << db << " to the peer " << to << dendl;
302- listing_msg->encode_payload_from ({me, std::move (db)});
303301 return send_message_mds (listing_msg, addrs);
304302 };
305303 }
Original file line number Diff line number Diff line change 2121class MMDSQuiesceDbAck final : public MMDSOp {
2222protected:
2323 MMDSQuiesceDbAck () : MMDSOp{MSG_MDS_QUIESCE_DB_ACK} {}
24+ MMDSQuiesceDbAck (auto && _ack)
25+ : MMDSOp{MSG_MDS_QUIESCE_DB_ACK}
26+ , ack(std::forward<decltype (_ack)>(_ack))
27+ {}
2428 ~MMDSQuiesceDbAck () final {}
2529
2630public:
@@ -30,11 +34,6 @@ class MMDSQuiesceDbAck final : public MMDSOp {
3034 }
3135
3236 void encode_payload (uint64_t features) override
33- {
34- // noop to prevent unnecessary overheads
35- }
36-
37- void encode_payload_from (QuiesceDbPeerAck const & ack)
3837 {
3938 ::encode (ack, payload);
4039 }
@@ -43,15 +42,17 @@ class MMDSQuiesceDbAck final : public MMDSOp {
4342 // noop to prevent unnecessary overheads
4443 }
4544
46- void decode_payload_into (QuiesceDbPeerAck &ack ) const
45+ void decode_payload_into (QuiesceDbPeerAck &_ack ) const
4746 {
4847 auto p = payload.cbegin ();
49- ::decode (ack , p);
48+ ::decode (_ack , p);
5049 }
5150
5251private:
5352 template <class T , typename ... Args>
5453 friend boost::intrusive_ptr<T> ceph::make_message (Args&&... args);
5554 template <class T , typename ... Args>
5655 friend MURef<T> crimson::make_message (Args&&... args);
56+
57+ QuiesceDbPeerAck ack;
5758};
Original file line number Diff line number Diff line change 2121class MMDSQuiesceDbListing final : public MMDSOp {
2222protected:
2323 MMDSQuiesceDbListing () : MMDSOp{MSG_MDS_QUIESCE_DB_LISTING} {}
24+ MMDSQuiesceDbListing (auto && _pl)
25+ : MMDSOp{MSG_MDS_QUIESCE_DB_LISTING}
26+ , peer_listing(std::forward<decltype (_pl)>(_pl))
27+ {}
2428 ~MMDSQuiesceDbListing () final {}
2529
2630public:
@@ -30,27 +34,24 @@ class MMDSQuiesceDbListing final : public MMDSOp {
3034 }
3135
3236 void encode_payload (uint64_t features) override {
33- // noop to prevent unnecessary overheads
34- }
35-
36- void encode_payload_from (QuiesceDbPeerListing const & peer_listing)
37- {
3837 ::encode (peer_listing, payload);
3938 }
4039
4140 void decode_payload () override {
4241 // noop to prevent unnecessary overheads
4342 }
4443
45- void decode_payload_into (QuiesceDbPeerListing &peer_listing ) const
44+ void decode_payload_into (QuiesceDbPeerListing &pl ) const
4645 {
4746 auto p = payload.cbegin ();
48- ::decode (peer_listing , p);
47+ ::decode (pl , p);
4948 }
5049
5150private:
5251 template <class T , typename ... Args>
5352 friend boost::intrusive_ptr<T> ceph::make_message (Args&&... args);
5453 template <class T , typename ... Args>
5554 friend MURef<T> crimson::make_message (Args&&... args);
55+
56+ QuiesceDbPeerListing peer_listing;
5657};
You can’t perform that action at this time.
0 commit comments