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: v13.0.1~489^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bc16b162cf757b9c6ceae30912eb647ef9304f75;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 --- diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index f69962851804..04908999ed8a 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -445,8 +445,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; }