From: yuliyang Date: Sun, 24 Sep 2017 00:41:04 +0000 (+0800) Subject: rgw:fix list objects with marker when bucket is enable versioning X-Git-Tag: v10.2.11~105^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=15d0eae3a3f27824fe4e49e8e0dccdc682598ffb;p=ceph.git rgw:fix list objects with marker when bucket is enable versioning fix: http://tracker.ceph.com/issues/21500 Signed-off-by: yuliyang (cherry picked from commit bc16b162cf757b9c6ceae30912eb647ef9304f75) --- diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index 03314a17ac406..7ddc00023b9b0 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -473,8 +473,9 @@ int rgw_bucket_list(cls_method_context_t hctx, bufferlist *in, bufferlist *out) CLS_LOG(20, "entry %s[%s] is not valid\n", key.name.c_str(), key.instance.c_str()); continue; } - - if (!op.list_versions && !entry.is_visible()) { + + // filter out noncurrent versions, delete markers, and initial marker + if (!op.list_versions && (!entry.is_visible() || op.start_obj.name == key.name)) { CLS_LOG(20, "entry %s[%s] is not visible\n", key.name.c_str(), key.instance.c_str()); continue; }