summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2012-07-11 09:04:50 -0700
committerSage Weil <sage@inktank.com>2012-07-11 09:04:50 -0700
commit22d0648db224f181914882787b25b36e2eac38b0 (patch)
treed44cb21efb43837ae6a5b5cd6c4e19fa65f09e5c
parentc5bcb04b9a33ab8f2bfbc6cf4e759105b32b21b1 (diff)
downloadceph-22d0648db224f181914882787b25b36e2eac38b0.tar.gz
librados: simplify cct refcounting
get() in ctor, put() in dtor. Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/librados/RadosClient.cc2
-rw-r--r--src/librados/librados.cc4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc
index ecf923f7511..63813ffe2aa 100644
--- a/src/librados/RadosClient.cc
+++ b/src/librados/RadosClient.cc
@@ -57,7 +57,7 @@ bool librados::RadosClient::ms_get_authorizer(int dest_type,
librados::RadosClient::RadosClient(CephContext *cct_)
: Dispatcher(cct_),
- cct(cct_),
+ cct(cct_->get()),
conf(cct_->_conf),
state(DISCONNECTED),
monclient(cct_),
diff --git a/src/librados/librados.cc b/src/librados/librados.cc
index 48fd5dc255b..a50c67b6314 100644
--- a/src/librados/librados.cc
+++ b/src/librados/librados.cc
@@ -1287,6 +1287,8 @@ extern "C" int rados_create(rados_t *pcluster, const char * const id)
librados::RadosClient *radosp = new librados::RadosClient(cct);
*pcluster = (void *)radosp;
+
+ cct->put();
return 0;
}
@@ -1297,7 +1299,7 @@ extern "C" int rados_create(rados_t *pcluster, const char * const id)
extern "C" int rados_create_with_context(rados_t *pcluster, rados_config_t cct_)
{
CephContext *cct = (CephContext *)cct_;
- librados::RadosClient *radosp = new librados::RadosClient(cct->get());
+ librados::RadosClient *radosp = new librados::RadosClient(cct);
*pcluster = (void *)radosp;
return 0;
}