diff options
author | Yehuda Sadeh <yehuda@hq.newdream.net> | 2011-09-06 14:22:21 -0700 |
---|---|---|
committer | Yehuda Sadeh <yehuda@hq.newdream.net> | 2011-09-06 14:37:57 -0700 |
commit | 988ff0fd51fcbc1e8e040ddfe56433fe01673a3b (patch) | |
tree | 77f58926456374e7808604c5810f78226cd514da | |
parent | 1a52cbdeb7a7e3a65b8ea4b57643f2e322293dc4 (diff) | |
download | ceph-988ff0fd51fcbc1e8e040ddfe56433fe01673a3b.tar.gz |
rgw: fix update_container_stats()
being used when using swift
-rw-r--r-- | src/rgw/rgw_rados.cc | 10 |
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; |