}
librados::IoCtxImpl::IoCtxImpl(RadosClient *c, Objecter *objecter,
- int poolid,
- Mutex *client_lock, int64_t poolid,
++ int64_t poolid,
const char *pool_name, snapid_t s)
: ref_cnt(0), client(c), poolid(poolid), pool_name(pool_name), snap_seq(s),
- assert_ver(0), notify_timeout(c->cct->_conf->client_notify_timeout),
+ assert_ver(0), last_objver(0),
+ notify_timeout(c->cct->_conf->client_notify_timeout),
oloc(poolid),
aio_write_list_lock("librados::IoCtxImpl::aio_write_list_lock"),
- aio_write_seq(0), lock(client_lock), objecter(objecter)
+ aio_write_seq(0), objecter(objecter)
{
}
Objecter *objecter;
IoCtxImpl();
- IoCtxImpl(RadosClient *c, Objecter *objecter, Mutex *client_lock,
+ IoCtxImpl(RadosClient *c, Objecter *objecter,
- int poolid, const char *pool_name, snapid_t s);
+ int64_t poolid, const char *pool_name, snapid_t s);
void dup(const IoCtxImpl& rhs) {
// Copy everything except the ref count
return 0;
}
- *io = new librados::IoCtxImpl(this, objecter, &lock, pool_id, pool_name.c_str(),
+ int librados::RadosClient::create_ioctx(int64_t pool_id, IoCtxImpl **io)
+ {
+ std::string pool_name;
+ int r = pool_get_name(pool_id, &pool_name);
+ if (r < 0) {
+ return r;
+ }
+
++ *io = new librados::IoCtxImpl(this, objecter, pool_id, pool_name.c_str(),
+ CEPH_NOSNAP);
+ return 0;
+ }
+
bool librados::RadosClient::ms_dispatch(Message *m)
{
bool ret;