From: Yehuda Sadeh Date: Sun, 31 Mar 2013 07:02:15 +0000 (-0700) Subject: rgw: translate object marker to raw format X-Git-Tag: v0.56.7~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a8f9d57a15ad7a69d53aa8fc6090fd1b394b616a;p=ceph.git rgw: translate object marker to raw format Fixes: #4600 Object marker should be treated as an object, so that name is formatted correctly when getting the raw oid. Signed-off-by: Yehuda Sadeh (cherry picked from commit b083dece36a050ec15ac41a275aeef0ece1ac009) --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 1fed42f5dd58..522dbbb7b5b1 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -686,24 +686,17 @@ int RGWRados::list_objects(rgw_bucket& bucket, int max, string& prefix, string& bool get_content_type, string& ns, bool *is_truncated, RGWAccessListFilter *filter) { int count = 0; - string cur_marker = marker; bool truncated; - string ns_prefix; if (bucket_is_system(bucket)) { return -EINVAL; } result.clear(); - if (!ns.empty()) { - ns_prefix = "_"; - ns_prefix += ns + "_"; - if (cur_marker < ns_prefix) { - cur_marker = ns_prefix; - } else if (cur_marker.substr(0, ns.size()) > ns_prefix) { - truncated = false; - goto done; - } - } + + rgw_obj marker_obj; + marker_obj.set_ns(ns); + marker_obj.set_obj(marker); + string cur_marker = marker_obj.object; do { std::map ent_map;