int librados::IoCtxImpl::watch(const object_t& oid, uint64_t ver,
uint64_t *cookie, librados::WatchCtx *ctx)
{
- ::ObjectOperation rd;
+ ::ObjectOperation wr;
Mutex mylock("IoCtxImpl::watch::mylock");
Cond cond;
bool done;
WatchContext *wc = new WatchContext(this, oid, ctx);
client->register_watcher(wc, oid, ctx, cookie);
- prepare_assert_ops(&rd);
- rd.watch(*cookie, ver, 1);
+ prepare_assert_ops(&wr);
+ wr.watch(*cookie, ver, 1);
bufferlist bl;
wc->linger_id = objecter->linger(
- oid, oloc, rd, snap_seq, bl, NULL,
+ oid, oloc, wr, snap_seq, bl, NULL,
CEPH_OSD_FLAG_WRITE,
NULL, onfinish, &objver);
lock->Unlock();
Cond cond;
bool done;
int r;
- Context *onack = new C_SafeCond(&mylock, &cond, &done, &r);
+ Context *oncommit = new C_SafeCond(&mylock, &cond, &done, &r);
eversion_t ver;
lock->Lock();
client->unregister_watcher(cookie);
- ::ObjectOperation rd;
- prepare_assert_ops(&rd);
- rd.watch(cookie, 0, 0);
- objecter->read(oid, oloc, rd, snap_seq, &outbl, 0, onack, &ver);
+ ::ObjectOperation wr;
+ prepare_assert_ops(&wr);
+ wr.watch(cookie, 0, 0);
+ objecter->mutate(oid, oloc, wr, snapc, ceph_clock_now(client->cct), 0, NULL, oncommit, &ver);
lock->Unlock();
mylock.Lock();