From: Casey Bodley Date: Fri, 6 May 2016 19:57:22 +0000 (-0400) Subject: rgw: fix for duplicates in list_periods() X-Git-Tag: v10.2.1~9^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9bb17dbb1ce2ae910927e120cf35da9ee4c98225;p=ceph.git rgw: fix for duplicates in list_periods() Signed-off-by: Casey Bodley (cherry picked from commit abed30befd86c68922759a66db589285fe01e54b) --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 021efba8d21..a443cc13b84 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3826,14 +3826,15 @@ int RGWRados::list_periods(list& periods) if (ret < 0) { return ret; } - for(list::iterator iter = raw_periods.begin(); iter != raw_periods.end(); iter++) { - size_t pos = iter->find("."); - if ( pos != std::string::npos) { - periods.push_back(iter->substr(0, pos)); + for (const auto& oid : raw_periods) { + size_t pos = oid.find("."); + if (pos != std::string::npos) { + periods.push_back(oid.substr(0, pos)); } else { - periods.push_back(*iter); + periods.push_back(oid); } } + periods.sort(); // unique() only detects duplicates if they're adjacent periods.unique(); return 0; }