reinterpret_cast<libradosstriper::MultiAioCompletionImpl*>(c);
cdata->complete(comp->rval);
delete cdata;
- comp->ref--;
}
static void rados_req_read_safe(rados_completion_t c, void *arg)
break;
}
nc->finish_adding_requests();
+ nc->put();
return r;
}
cdata->complete(comp->rval);
if (0 == comp->pending_safe) {
delete cdata;
- comp->ref--;
}
}
cdata->safe(comp->rval);
if (0 == comp->pending_complete) {
delete cdata;
- comp->ref--;
}
}
nc->set_complete_callback(cdata, striper_write_aio_req_complete);
nc->set_safe_callback(cdata, striper_write_aio_req_safe);
// internal asynchronous API
- return internal_aio_write(soid, nc, bl, len, off, layout);
+ int rc = internal_aio_write(soid, nc, bl, len, off, layout);
+ nc->put();
+ return rc;
}
static void rados_req_write_safe(rados_completion_t c, void *arg)