void getxattr(const char *name, bufferlist *pbl, int *prval);
void getxattrs(std::map<std::string, bufferlist> *pattrs, int *prval);
void read(size_t off, uint64_t len, bufferlist *pbl, int *prval);
- void tmap_get(bufferlist *pbl);
+ void tmap_get(bufferlist *pbl, int *prval);
};
o->read(off, len, pbl, prval);
}
-void librados::ObjectReadOperation::tmap_get(bufferlist *pbl)
+void librados::ObjectReadOperation::tmap_get(bufferlist *pbl, int *prval)
{
::ObjectOperation *o = (::ObjectOperation *)impl;
- o->tmap_get(pbl);
+ o->tmap_get(pbl, prval);
}
void librados::ObjectReadOperation::getxattr(const char *name, bufferlist *pbl, int *prval)
Mutex mylock("RadosClient::tmap_put::mylock");
Cond cond;
bool done;
- int r;
+ int r = 0;
Context *onack = new C_SafeCond(&mylock, &cond, &done, &r);
eversion_t ver;
lock.Lock();
::ObjectOperation rd;
prepare_assert_ops(&io, &rd);
- rd.tmap_get(&bl);
+ rd.tmap_get(&bl, NULL);
objecter->read(oid, io.oloc, rd, io.snap_seq, 0, 0, onack, &ver);
lock.Unlock();
void tmap_put(bufferlist& bl) {
add_data(CEPH_OSD_OP_TMAPPUT, 0, bl.length(), bl);
}
- void tmap_get(bufferlist *pbl) {
+ void tmap_get(bufferlist *pbl, int *prval) {
add_op(CEPH_OSD_OP_TMAPGET);
unsigned p = ops.size() - 1;
out_bl[p] = pbl;
+ out_rval[p] = prval;
}
void tmap_get() {
add_op(CEPH_OSD_OP_TMAPGET);