msg->pgid = pg.get_pgid();
msg->map_epoch = pg.get_osdmap_epoch();
msg->min_epoch = pg.get_last_peering_reset();
- std::vector<PullOp> pulls;
- pulls.push_back(po);
- msg->set_pulls(&pulls);
+ msg->set_pulls({std::move(po)});
return shard_services.send_to_osd(
pi.from.osd,
std::move(msg),
}).then([this, m, &response](bool complete) {
if (complete) {
auto& pop = m->pushes[0];
- recovering[pop.soid].set_pulled();
+ recovering.at(pop.soid).set_pulled();
return seastar::make_ready_future<>();
} else {
auto reply = make_message<MOSDPGPull>();
reply->pgid = pg.get_info().pgid;
reply->map_epoch = m->map_epoch;
reply->min_epoch = m->min_epoch;
- vector<PullOp> vec = { std::move(response) };
- reply->set_pulls(&vec);
+ reply->set_pulls({std::move(response)});
return shard_services.send_to_osd(m->from.osd, std::move(reply), pg.get_osdmap_epoch());
}
});
void take_pulls(std::vector<PullOp> *outpulls) {
outpulls->swap(pulls);
}
- void set_pulls(std::vector<PullOp> *inpulls) {
- inpulls->swap(pulls);
+ void set_pulls(std::vector<PullOp>&& pull_ops) {
+ pulls = std::move(pull_ops);
}
MOSDPGPull()
reply->pgid = get_info().pgid;
reply->map_epoch = m->map_epoch;
reply->min_epoch = m->min_epoch;
- reply->set_pulls(&replies);
+ reply->set_pulls(std::move(replies));
reply->compute_cost(cct);
t.register_on_complete(
msg->pgid = get_parent()->primary_spg_t();
msg->map_epoch = get_osdmap_epoch();
msg->min_epoch = get_parent()->get_last_peering_reset_epoch();
- msg->set_pulls(&i->second);
+ msg->set_pulls(std::move(i->second));
msg->compute_cost(cct);
get_parent()->send_message_osd_cluster(msg, con);
}