bool flushed;
// Ops waiting on backfill_pos to change
- list<OpRequestRef> waiting_for_backfill_pos;
list<OpRequestRef> waiting_for_active;
list<OpRequestRef> waiting_for_all_missing;
map<hobject_t, list<OpRequestRef> > waiting_for_missing_object,
op->mark_delayed("waiting for blocked object");
}
-void ReplicatedPG::wait_for_backfill_pos(OpRequestRef op)
-{
- waiting_for_backfill_pos.push_back(op);
-}
-
-void ReplicatedPG::release_waiting_for_backfill_pos()
-{
- requeue_ops(waiting_for_backfill_pos);
-}
-
bool PGLSParentFilter::filter(bufferlist& xattr_data, bufferlist& outdata)
{
bufferlist::iterator iter = xattr_data.begin();
return;
}
- if (head == backfill_pos) {
- wait_for_backfill_pos(op);
- return;
- }
-
// missing snapdir?
hobject_t snapdir(m->get_oid(), m->get_object_locator().key,
CEPH_SNAPDIR, m->get_pg().ps(), info.pgid.pool(),
backfill_pos = backfill_info.begin > peer_backfill_info.begin ?
peer_backfill_info.begin : backfill_info.begin;
- release_waiting_for_backfill_pos();
dout(10) << " backfill_pos now " << backfill_pos << dendl;
assert(waiting_on_backfill);
// requeue object waiters
if (is_primary()) {
- requeue_ops(waiting_for_backfill_pos);
requeue_object_waiters(waiting_for_missing_object);
} else {
- waiting_for_backfill_pos.clear();
waiting_for_missing_object.clear();
}
for (map<hobject_t,list<OpRequestRef> >::iterator p = waiting_for_degraded_object.begin();
}
pgbackend->run_recovery_op(h, cct->_conf->osd_recovery_op_priority);
- release_waiting_for_backfill_pos();
dout(5) << "backfill_pos is " << backfill_pos << " and pinfo.last_backfill is "
<< pinfo.last_backfill << dendl;
for (set<hobject_t>::iterator i = backfills_in_flight.begin();
bool is_missing_object(const hobject_t& oid);
void wait_for_missing_object(const hobject_t& oid, OpRequestRef op);
void wait_for_all_missing(OpRequestRef op);
- void wait_for_backfill_pos(OpRequestRef op);
- void release_waiting_for_backfill_pos();
bool is_degraded_object(const hobject_t& oid);
void wait_for_degraded_object(const hobject_t& oid, OpRequestRef op);