dout(10) << "priming slot " << *p << dendl;
r.first->second->waiting_for_split = true;
} else {
- auto q = pg_slots.find(*p);
+ auto q = r.first;
assert(q != pg_slots.end());
if (q->second->waiting_for_split) {
dout(10) << "slot " << *p << " already primed" << dendl;
auto qi = std::move(slot->to_process.front());
slot->to_process.pop_front();
dout(20) << __func__ << " " << qi << " pg " << pg << dendl;
- unsigned pushes_to_free = 0;
set<spg_t> new_children;
OSDMapRef osdmap;
_add_slot_waiter(token, slot, std::move(qi));
sdata->sdata_op_ordering_lock.Unlock();
pg->unlock();
- if (pushes_to_free) {
- osd->service.release_reserved_pushes(pushes_to_free);
- }
return;
}
}
}
assert(new_children.empty());
}
- if (pushes_to_free) {
- osd->service.release_reserved_pushes(pushes_to_free);
- }
// osd_opwq_process marks the point at which an operation has been dequeued
// and will begin to be handled by a worker thread.