psdout(10) << "sending PGRemove to osd." << *p << dendl;
vector<spg_t> to_remove;
to_remove.push_back(spg_t(info.pgid.pgid, p->shard));
- MOSDPGRemove *m = new MOSDPGRemove(
+ auto m = make_message<MOSDPGRemove>(
get_osdmap_epoch(),
to_remove);
pl->send_cluster_message(p->osd, m, get_osdmap_epoch());
}
pl->send_cluster_message(
peer.osd,
- new MOSDPGLease(epoch,
+ make_message<MOSDPGLease>(epoch,
spg_t(spgid.pgid, peer.shard),
get_lease()),
epoch);
pl->unreserve_recovery_space();
pl->send_cluster_message(
primary.osd,
- new MBackfillReserve(
+ make_message<MBackfillReserve>(
MBackfillReserve::REJECT_TOOFULL,
spg_t(info.pgid.pgid, primary.shard),
get_osdmap_epoch()),
psdout(10) << "activate peer osd." << peer << " " << pi << dendl;
- MOSDPGLog *m = 0;
+ MRef<MOSDPGLog> m;
ceph_assert(peer_missing.count(peer));
pg_missing_t& pm = peer_missing[peer];
} else {
psdout(10) << "activate peer osd." << peer
<< " is up to date, but sending pg_log anyway" << dendl;
- m = new MOSDPGLog(
+ m = make_message<MOSDPGLog>(
i->shard, pg_whoami.shard,
get_osdmap_epoch(), info,
last_peering_reset);
// initialize peer with our purged_snaps.
pi.purged_snaps = info.purged_snaps;
- m = new MOSDPGLog(
+ m = make_message<MOSDPGLog>(
i->shard, pg_whoami.shard,
get_osdmap_epoch(), pi,
last_peering_reset /* epoch to create pg at */);
} else {
// catch up
ceph_assert(pg_log.get_tail() <= pi.last_update);
- m = new MOSDPGLog(
+ m = make_message<MOSDPGLog>(
i->shard, pg_whoami.shard,
get_osdmap_epoch(), info,
last_peering_reset /* epoch to create pg at */);
peer->second.last_interval_started = info.last_interval_started;
peer->second.history.merge(info.history);
}
- Message* m = nullptr;
+ MessageRef m;
if (last_require_osd_release >= ceph_release_t::octopus) {
- m = new MOSDPGInfo2{spg_t{info.pgid.pgid, pg_shard.shard},
+ m = make_message<MOSDPGInfo2>(spg_t{info.pgid.pgid, pg_shard.shard},
info,
get_osdmap_epoch(),
get_osdmap_epoch(),
- get_lease(), {}};
+ std::optional<pg_lease_t>{get_lease()},
+ std::nullopt);
} else {
- m = new MOSDPGInfo{get_osdmap_epoch(),
- {pg_notify_t{pg_shard.shard,
- pg_whoami.shard,
- get_osdmap_epoch(),
- get_osdmap_epoch(),
- info,
- past_intervals}}};
+ m = make_message<MOSDPGInfo>(get_osdmap_epoch(),
+ MOSDPGInfo::pg_list_t{
+ pg_notify_t{pg_shard.shard,
+ pg_whoami.shard,
+ get_osdmap_epoch(),
+ get_osdmap_epoch(),
+ info,
+ past_intervals}});
}
pl->send_cluster_message(pg_shard.osd, m, get_osdmap_epoch());
}
ceph_assert(from == primary);
ceph_assert(query.type != pg_query_t::INFO);
- MOSDPGLog *mlog = new MOSDPGLog(
+ auto mlog = make_message<MOSDPGLog>(
from.shard, pg_whoami.shard,
get_osdmap_epoch(),
info, query_epoch);
// we are fully up to date. tell the primary!
pl->send_cluster_message(
get_primary().osd,
- new MOSDPGTrim(
+ make_message<MOSDPGTrim>(
get_osdmap_epoch(),
spg_t(info.pgid.pgid, primary.shard),
last_complete_ondisk),
ceph_assert(*it != ps->pg_whoami);
pl->send_cluster_message(
it->osd,
- new MBackfillReserve(
+ make_message<MBackfillReserve>(
MBackfillReserve::RELEASE,
spg_t(ps->info.pgid.pgid, it->shard),
ps->get_osdmap_epoch()),
ceph_assert(*backfill_osd_it != ps->pg_whoami);
pl->send_cluster_message(
backfill_osd_it->osd,
- new MBackfillReserve(
+ make_message<MBackfillReserve>(
MBackfillReserve::REQUEST,
spg_t(context< PeeringMachine >().spgid.pgid, backfill_osd_it->shard),
ps->get_osdmap_epoch(),
ceph_assert(*it != ps->pg_whoami);
pl->send_cluster_message(
it->osd,
- new MBackfillReserve(
+ make_message<MBackfillReserve>(
MBackfillReserve::RELEASE,
spg_t(context< PeeringMachine >().spgid.pgid, it->shard),
ps->get_osdmap_epoch()),
DECLARE_LOCALS;
pl->send_cluster_message(
ps->primary.osd,
- new MRecoveryReserve(
+ make_message<MRecoveryReserve>(
MRecoveryReserve::GRANT,
spg_t(ps->info.pgid.pgid, ps->primary.shard),
ps->get_osdmap_epoch()),
pl->send_cluster_message(
ps->primary.osd,
- new MBackfillReserve(
+ make_message<MBackfillReserve>(
MBackfillReserve::GRANT,
spg_t(ps->info.pgid.pgid, ps->primary.shard),
ps->get_osdmap_epoch()),
pl->unreserve_recovery_space();
pl->send_cluster_message(
ps->primary.osd,
- new MRecoveryReserve(
+ make_message<MRecoveryReserve>(
MRecoveryReserve::REVOKE,
spg_t(ps->info.pgid.pgid, ps->primary.shard),
ps->get_osdmap_epoch()),
pl->unreserve_recovery_space();
pl->send_cluster_message(
ps->primary.osd,
- new MBackfillReserve(
+ make_message<MBackfillReserve>(
MBackfillReserve::REVOKE_TOOFULL,
spg_t(ps->info.pgid.pgid, ps->primary.shard),
ps->get_osdmap_epoch()),
pl->unreserve_recovery_space();
pl->send_cluster_message(
ps->primary.osd,
- new MBackfillReserve(
+ make_message<MBackfillReserve>(
MBackfillReserve::REVOKE,
spg_t(ps->info.pgid.pgid, ps->primary.shard),
ps->get_osdmap_epoch()),
ceph_assert(*remote_recovery_reservation_it != ps->pg_whoami);
pl->send_cluster_message(
remote_recovery_reservation_it->osd,
- new MRecoveryReserve(
+ make_message<MRecoveryReserve>(
MRecoveryReserve::REQUEST,
spg_t(context< PeeringMachine >().spgid.pgid,
remote_recovery_reservation_it->shard),
continue;
pl->send_cluster_message(
i->osd,
- new MRecoveryReserve(
+ make_message<MRecoveryReserve>(
MRecoveryReserve::RELEASE,
spg_t(ps->info.pgid.pgid, i->shard),
ps->get_osdmap_epoch()),
ps->proc_lease(l.lease);
pl->send_cluster_message(
ps->get_primary().osd,
- new MOSDPGLeaseAck(epoch,
+ make_message<MOSDPGLeaseAck>(epoch,
spg_t(spgid.pgid, ps->get_primary().shard),
ps->get_lease_ack()),
epoch);