summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@hq.newdream.net>2011-09-06 14:22:21 -0700
committerYehuda Sadeh <yehuda@hq.newdream.net>2011-09-06 14:37:57 -0700
commit988ff0fd51fcbc1e8e040ddfe56433fe01673a3b (patch)
tree77f58926456374e7808604c5810f78226cd514da
parent1a52cbdeb7a7e3a65b8ea4b57643f2e322293dc4 (diff)
downloadceph-988ff0fd51fcbc1e8e040ddfe56433fe01673a3b.tar.gz
rgw: fix update_container_stats()
being used when using swift
-rw-r--r--src/rgw/rgw_rados.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc
index b39abf499bd..404bddb33fb 100644
--- a/src/rgw/rgw_rados.cc
+++ b/src/rgw/rgw_rados.cc
@@ -1617,13 +1617,13 @@ int RGWRados::update_containers_stats(map<string, RGWBucketEnt>& m)
int count = 0;
map<string, RGWBucketEnt>::iterator iter;
- list<string> buckets_list;
+ list<string> pools_list;
for (iter = m.begin(); iter != m.end(); ++iter) {
- string bucket_name = iter->first;
- buckets_list.push_back(bucket_name);
+ string pool_name = iter->second.bucket.pool;
+ pools_list.push_back(pool_name);
}
map<std::string,librados::stats_map> sm;
- int r = rados->get_pool_stats(buckets_list, rgw_obj_category_main, sm);
+ int r = rados->get_pool_stats(pools_list, rgw_obj_category_main, sm);
if (r < 0)
return r;
@@ -1632,6 +1632,8 @@ int RGWRados::update_containers_stats(map<string, RGWBucketEnt>& m)
for (miter = sm.begin(), iter = m.begin(); miter != sm.end(), iter != m.end(); ++iter, ++miter) {
stats_map stats = miter->second;
stats_map::iterator stats_iter = stats.begin();
+ if (stats_iter == stats.end())
+ continue;
string bucket_name = miter->first;
RGWBucketEnt& ent = iter->second;