// cancel objecter op, if we can
if (prdop->objecter_tid) {
osd->objecter->op_cancel(prdop->objecter_tid, -ECANCELED);
+ for (uint32_t i = 0; i < prdop->ops.size(); i++) {
+ prdop->ops[i].outdata.clear();
+ }
proxyread_ops.erase(prdop->objecter_tid);
prdop->objecter_tid = 0;
}
// cancel and requeue proxy ops on this object
if (!r) {
- kick_proxy_ops_blocked(cobc->obs.oi.soid);
for (map<ceph_tid_t, ProxyReadOpRef>::iterator it = proxyread_ops.begin();
it != proxyread_ops.end(); ++it) {
if (it->second->soid == cobc->obs.oi.soid) {
cancel_proxy_write(it->second);
}
}
+ kick_proxy_ops_blocked(cobc->obs.oi.soid);
}
kick_object_context_blocked(cobc);