From: Sage Weil Date: Thu, 22 Aug 2019 18:52:11 +0000 (-0500) Subject: osd/PeeringState: send new message types X-Git-Tag: v15.1.0~1584^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=efff7776f164ca97a022c21766fce904501f7cdc;p=ceph.git osd/PeeringState: send new message types Signed-off-by: Sage Weil --- diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index 68cfe2e8342..81262f31760 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -11,10 +11,13 @@ #include "messages/MRecoveryReserve.h" #include "messages/MOSDScrubReserve.h" #include "messages/MOSDPGInfo.h" +#include "messages/MOSDPGInfo2.h" #include "messages/MOSDPGTrim.h" #include "messages/MOSDPGLog.h" #include "messages/MOSDPGNotify.h" +#include "messages/MOSDPGNotify2.h" #include "messages/MOSDPGQuery.h" +#include "messages/MOSDPGQuery2.h" #define dout_context cct #define dout_subsys ceph_subsys_osd @@ -29,11 +32,19 @@ BufferedRecoveryMessages::BufferedRecoveryMessages( void BufferedRecoveryMessages::send_notify(int to, const pg_notify_t &n) { - vector notifies; - notifies.push_back(n); - message_map[to].push_back( - new MOSDPGNotify(n.epoch_sent, std::move(notifies)) - ); + if (require_osd_release >= ceph_release_t::octopus) { + spg_t pgid(n.info.pgid.pgid, n.to); + message_map[to].push_back( + make_message( + pgid, + n)); + } else { + vector notifies; + notifies.push_back(n); + message_map[to].push_back( + make_message(n.epoch_sent, std::move(notifies)) + ); + } } void BufferedRecoveryMessages::send_query( @@ -41,11 +52,17 @@ void BufferedRecoveryMessages::send_query( spg_t to_spgid, const pg_query_t &q) { - map queries; - queries[to_spgid] = q; - message_map[to].push_back( - new MOSDPGQuery(q.epoch_sent, std::move(queries)) - ); + if (require_osd_release >= ceph_release_t::octopus) { + message_map[to].push_back( + make_message(to_spgid, q) + ); + } else { + map queries; + queries[to_spgid] = q; + message_map[to].push_back( + make_message(q.epoch_sent, std::move(queries)) + ); + } } void BufferedRecoveryMessages::send_info( @@ -55,14 +72,24 @@ void BufferedRecoveryMessages::send_info( epoch_t cur_epoch, const pg_info_t &info) { - MOSDPGInfo *m = new MOSDPGInfo(cur_epoch); - m->pg_list.push_back( - pg_notify_t( - to_spgid.shard, - info.pgid.shard, - min_epoch, cur_epoch, - info, PastIntervals())); - message_map[to].push_back(m); + if (require_osd_release >= ceph_release_t::octopus) { + message_map[to].push_back( + make_message( + to_spgid, + info, + cur_epoch, + min_epoch) + ); + } else { + auto m = make_message(cur_epoch); + m->pg_list.push_back( + pg_notify_t( + to_spgid.shard, + info.pgid.shard, + min_epoch, cur_epoch, + info, PastIntervals())); + message_map[to].push_back(m); + } } void PGPool::update(CephContext *cct, OSDMapRef map)