::ObjectOperation rd;
prepare_assert_ops(&rd);
- rd.read(off, len, &bl, NULL);
+ rd.read(off, len, &bl, NULL, NULL);
int r = operate_read(oid, &rd, &bl);
if (r < 0)
return r;
void librados::ObjectReadOperation::read(size_t off, uint64_t len, bufferlist *pbl, int *prval)
{
::ObjectOperation *o = (::ObjectOperation *)impl;
- o->read(off, len, pbl, prval);
+ o->read(off, len, pbl, prval, NULL);
}
void librados::ObjectReadOperation::sparse_read(uint64_t off, uint64_t len,
}
// object data
- void read(uint64_t off, uint64_t len, bufferlist *pbl, int *prval) {
+ void read(uint64_t off, uint64_t len, bufferlist *pbl, int *prval,
+ Context* ctx) {
bufferlist bl;
add_data(CEPH_OSD_OP_READ, off, len, bl);
unsigned p = ops.size() - 1;
out_bl[p] = pbl;
out_rval[p] = prval;
+ out_handler[p] = ctx;
}
struct C_ObjectOperation_sparse_read : public Context {