} else {
op.read(m_object_off, m_object_len, &m_read_data, NULL);
}
+ op.set_op_flags2(m_op_flags);
+
r = m_ioctx->aio_operate(m_oid, rados_completion, &op, flags, NULL);
rados_completion->release();
uint64_t objectno, uint64_t offset, uint64_t len,
vector<pair<uint64_t,uint64_t> >& be,
librados::snap_t snap_id, bool sparse,
- Context *completion)
+ Context *completion, int op_flags)
: AioRequest(ictx, oid, objectno, offset, len, snap_id, completion,
false),
- m_buffer_extents(be),
- m_tried_parent(false), m_sparse(sparse) {
+ m_buffer_extents(be), m_tried_parent(false),
+ m_sparse(sparse), m_op_flags(op_flags) {
}
virtual ~AioRead() {}
virtual bool should_complete(int r);
vector<pair<uint64_t,uint64_t> > m_buffer_extents;
bool m_tried_parent;
bool m_sparse;
+ int m_op_flags;
};
class AbstractWrite : public AioRequest {
AioRead *req = new AioRead(ictx, q->oid.name,
q->objectno, q->offset, q->length,
q->buffer_extents,
- snap_id, true, req_comp);
+ snap_id, true, req_comp, op_flags);
req_comp->set_req(req);
c->add_request();