Mutex mylock("RadosClient::get_pool_stats::mylock");
Cond cond;
bool done;
+ int ret = 0;
lock.Lock();
- objecter->get_pool_stats(pools, &result, new C_SafeCond(&mylock, &cond, &done));
+ objecter->get_pool_stats(pools, &result, new C_SafeCond(&mylock, &cond, &done,
+ &ret));
lock.Unlock();
mylock.Lock();
cond.Wait(mylock);
mylock.Unlock();
- return 0;
+ return ret;
}
int librados::RadosClient::get_fs_stats(ceph_statfs& stats)
Mutex mylock ("RadosClient::get_fs_stats::mylock");
Cond cond;
bool done;
+ int ret = 0;
+
lock.Lock();
- objecter->get_fs_stats(stats, new C_SafeCond(&mylock, &cond, &done));
+ objecter->get_fs_stats(stats, new C_SafeCond(&mylock, &cond, &done, &ret));
lock.Unlock();
mylock.Lock();
while (!done) cond.Wait(mylock);
mylock.Unlock();
- return 0;
+ return ret;
}
void librados::RadosClient::get() {
{
map<string,::pool_stat_t> rawresult;
int r = client->get_pool_stats(v, rawresult);
+ if (r < 0)
+ return r;
for (map<string,::pool_stat_t>::iterator p = rawresult.begin();
p != rawresult.end();
++p) {
{
librados::RadosClient *radosp = (librados::RadosClient *)cluster;
std::string name;
- radosp->pool_get_name(id, &name);
+ int r = radosp->pool_get_name(id, &name);
+ if (r < 0)
+ return r;
if (name.length() >= maxlen)
return -ERANGE;
strcpy(buf, name.c_str());
{
librados::RadosClient *client = (librados::RadosClient *)cluster;
std::list<std::string> pools;
- client->pool_list(pools);
+ int r = client->pool_list(pools);
+ if (r < 0)
+ return r;
if (!buf)
return -EINVAL;