return finished;
}
- int AioRead::send() {
+ void AioRead::send() {
ldout(m_ictx->cct, 20) << "send " << this << " " << m_oid << " "
<< m_object_off << "~" << m_object_len << dendl;
// send read request to parent if the object doesn't exist locally
if (!m_ictx->object_map.object_may_exist(m_object_no)) {
complete(-ENOENT);
- return 0;
+ return;
}
librados::AioCompletion *rados_completion =
op.set_op_flags2(m_op_flags);
r = m_ictx->data_ctx.aio_operate(m_oid, rados_completion, &op, flags, NULL);
+ assert(r == 0);
+
rados_completion->release();
- return r;
}
void AioRead::send_copyup()
return finished;
}
- int AbstractWrite::send() {
+ void AbstractWrite::send() {
ldout(m_ictx->cct, 20) << "send " << this << " " << m_oid << " "
<< m_object_off << "~" << m_object_len << dendl;
- if (send_pre()) {
- return 0;
- } else {
+ if (!send_pre()) {
send_write();
}
- return 0;
}
bool AbstractWrite::send_pre() {
void complete(int r);
virtual bool should_complete(int r) = 0;
- virtual int send() = 0;
+ virtual void send() = 0;
bool has_parent() const {
return !m_parent_extents.empty();
virtual ~AioRead();
virtual bool should_complete(int r);
- virtual int send();
+ virtual void send();
void guard_read();
ceph::bufferlist &data() {
}
virtual bool should_complete(int r);
- virtual int send();
+ virtual void send();
private:
/**
req = new AioTruncate(&m_image_ctx, p->oid.name, p->objectno,
p->offset, snapc, req_comp);
}
- int r = req->send();
- if (r < 0) {
- req_comp->complete(r);
- delete req;
- break;
- }
+ req->send();
}
}