// 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;
}
copy_ops.erase(cobc->obs.oi.soid);
cobc->stop_block();
- // cancel and requeue proxy reads on this object
- kick_proxy_read_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_read(it->second);
}
+ // cancel and requeue proxy reads on this object
+ kick_proxy_read_blocked(cobc->obs.oi.soid);
}
kick_object_context_blocked(cobc);