From: Sage Weil Date: Thu, 22 Aug 2019 17:47:45 +0000 (-0500) Subject: osd/PeeringState: use send_info() for replica activation ack X-Git-Tag: v15.1.0~1584^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=91d123cdeded2d2518cfec5fed28ed86b9e18f52;p=ceph.git osd/PeeringState: use send_info() for replica activation ack Signed-off-by: Sage Weil --- diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index 5edd97a852e8f..3726541e9d429 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -5654,31 +5654,27 @@ boost::statechart::result PeeringState::ReplicaActive::react( const ActivateCommitted &evt) { DECLARE_LOCALS; - psdout(10) << "_activate_committed " << evt.epoch - << " telling primary" << dendl; - MOSDPGInfo *m = new MOSDPGInfo(evt.epoch); - pg_notify_t i = pg_notify_t( - ps->get_primary().shard, ps->pg_whoami.shard, - ps->get_osdmap_epoch(), - ps->get_osdmap_epoch(), - ps->info, - PastIntervals()); - - i.info.history.last_epoch_started = evt.activation_epoch; - i.info.history.last_interval_started = i.info.history.same_interval_since; + psdout(10) << __func__ << " " << evt.epoch << " telling primary" << dendl; + + auto &rctx = context().get_recovery_ctx(); + auto epoch = ps->get_osdmap_epoch(); + pg_info_t i = ps->info; + i.history.last_epoch_started = evt.activation_epoch; + i.history.last_interval_started = i.history.same_interval_since; + rctx.send_info( + ps->get_primary().osd, + spg_t(ps->info.pgid.pgid, ps->get_primary().shard), + epoch, + epoch, + i); + if (ps->acting.size() >= ps->pool.info.min_size) { ps->state_set(PG_STATE_ACTIVE); } else { ps->state_set(PG_STATE_PEERED); } - - m->pg_list.emplace_back(i); - pl->send_cluster_message( - ps->get_primary().osd, - m, - ps->get_osdmap_epoch()); - pl->on_activate_committed(); + return discard_event(); }