From: Orit Wasserman Date: Wed, 31 Aug 2016 20:25:57 +0000 (+0200) Subject: rgw: fix regression with handling double underscore X-Git-Tag: v10.2.4~42^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=084108e440b7b9b8f0d36282dd4eba64a4b96f4b;p=ceph.git rgw: fix regression with handling double underscore Fixes: http://tracker.ceph.com/issues/16856 Signed-off-by: Orit Wasserman (cherry picked from commit bc840afafdfe5e528e5c1b711e71420ac3cb5a67) --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index ce94155ac70..61d3d74d94c 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -263,7 +263,8 @@ static int read_policy(RGWRados *store, struct req_state *s, obj.init_ns(bucket, oid, mp_ns); obj.set_in_extra_data(true); } else { - obj = rgw_obj(bucket, object); + obj = rgw_obj(bucket, object.name); + obj.set_instance(s->object.instance); } int ret = get_policy_from_attr(s->cct, store, s->obj_ctx, bucket_info, bucket_attrs, policy, obj); if (ret == -ENOENT && !object.empty()) { @@ -410,6 +411,7 @@ int rgw_build_object_policies(RGWRados *store, struct req_state *s, s->object_acl = new RGWAccessControlPolicy(s->cct); rgw_obj obj(s->bucket, s->object); + store->set_atomic(s->obj_ctx, obj); if (prefetch_data) { store->set_prefetch_data(s->obj_ctx, obj); @@ -430,7 +432,8 @@ static void rgw_bucket_object_pre_exec(struct req_state *s) int RGWGetObj::verify_permission() { - obj = rgw_obj(s->bucket, s->object); + obj = rgw_obj(s->bucket, s->object.name); + obj.set_instance(s->object.instance); store->set_atomic(s->obj_ctx, obj); if (get_data) store->set_prefetch_data(s->obj_ctx, obj);