From: Ilsoo Byun Date: Tue, 7 Jan 2020 01:35:53 +0000 (+0900) Subject: rgw: move forward marker even in case of many non-existent indexes X-Git-Tag: v15.1.0~199^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2eaac132d491ef3c6f8cb50c34fc67f56e006c07;p=ceph.git rgw: move forward marker even in case of many non-existent indexes Signed-off-by: Ilsoo Byun --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index b3e1d824f40d..ab3baee3b5f9 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -8091,10 +8091,11 @@ int RGWRados::cls_bucket_list_ordered(RGWBucketInfo& bucket_info, map updates; uint32_t count = 0; + int pos = -1; while (count < num_entries && !candidates.empty()) { r = 0; // select the next one - int pos = candidates.begin()->second; + pos = candidates.begin()->second; const string& name = vcurrents[pos]->first; struct rgw_bucket_dir_entry& dirent = vcurrents[pos]->second; @@ -8164,9 +8165,8 @@ int RGWRados::cls_bucket_list_ordered(RGWBucketInfo& bucket_info, count << ", which is truncated" << dendl; } - if (!m.empty()) { - *last_entry = m.rbegin()->first; - } + if (pos >= 0) + *last_entry = std::move((--vcurrents[pos])->first); return 0; }