Ref<MOSDPGCreate2> m)
{
std::vector<OperationRef> ret;
- for (auto &p : m->pgs) {
- const spg_t &pgid = p.first;
- const auto &[created, created_stamp] = p.second;
+ for (auto& [pgid, when] : m->pgs) {
+ const auto &[created, created_stamp] = when;
auto q = m->pg_extra.find(pgid);
ceph_assert(q != m->pg_extra.end());
+ auto& [history, pi] = q->second;
logger().debug(
"{}: {} e{} @{} "
"history {} pi {}",
__func__, pgid, created, created_stamp,
- q->second.first, q->second.second);
- if (!q->second.second.empty() &&
- m->epoch < q->second.second.get_bounds().second) {
+ history, pi);
+ if (!pi.empty() &&
+ m->epoch < pi.get_bounds().second) {
logger().error(
"got pg_create on {} epoch {} "
"unmatched past_intervals {} (history {})",
pgid, m->epoch,
- q->second.second, q->second.first);
+ pi, history);
} else {
auto op = osd.get_shard_services().start_operation<PeeringSubEvent>(
state,
m->epoch,
NullEvt(),
true,
- new PGCreateInfo(
- pgid,
- m->epoch,
- q->second.first,
- q->second.second,
- true)).first;
+ new PGCreateInfo(pgid, m->epoch, history, pi, true)).first;
ret.push_back(op);
}
}