From 2eaac132d491ef3c6f8cb50c34fc67f56e006c07 Mon Sep 17 00:00:00 2001 From: Ilsoo Byun Date: Tue, 7 Jan 2020 10:35:53 +0900 Subject: [PATCH] rgw: move forward marker even in case of many non-existent indexes Signed-off-by: Ilsoo Byun --- src/rgw/rgw_rados.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; } -- 2.47.3