bufferlist data_received,
interval_set<uint64_t> *intervals_usable,
bufferlist *data_usable);
- void _failed_push(int from, const hobject_t &soid) {}
+ void _failed_push(int from, const hobject_t &soid);
void send_pushes(int prio, map<int, vector<PushOp> > &pushes) {}
void prep_push_op_blank(const hobject_t& soid, PushOp *op) {}
return;
}
-void ReplicatedPG::_failed_push(int from, const hobject_t &soid)
+void ReplicatedPG::failed_push(int from, const hobject_t &soid)
{
+ // TODOSAM: this will need to update recovering
map<hobject_t,set<int> >::iterator p = missing_loc.find(soid);
if (p != missing_loc.end()) {
dout(0) << "_failed_push " << soid << " from osd." << from
dout(0) << "_failed_push " << soid << " from osd." << from
<< " but not in missing_loc ???" << dendl;
}
-
finish_recovery_op(soid); // close out this attempt,
+}
+
+void ReplicatedBackend::_failed_push(int from, const hobject_t &soid)
+{
+ get_parent()->failed_push(from, soid);
pull_from_peer[from].erase(soid);
+ if (pull_from_peer[from].empty())
+ pull_from_peer.erase(from);
pulling.erase(soid);
}
void _applied_recovered_object_replica();
void _committed_pushed_object(epoch_t epoch, eversion_t lc);
void recover_got(hobject_t oid, eversion_t v);
- void _failed_push(int from, const hobject_t &soid);
// -- copyfrom --
map<hobject_t, CopyOpRef> copy_ops;