From bc840afafdfe5e528e5c1b711e71420ac3cb5a67 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Wed, 31 Aug 2016 22:25:57 +0200 Subject: [PATCH] rgw: fix regression with handling double underscore Fixes: http://tracker.ceph.com/issues/16856 Signed-off-by: Orit Wasserman --- src/rgw/rgw_op.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 3f9bf8e987c0f..3f515429c7d38 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -308,7 +308,8 @@ static int read_policy(RGWRados *store, 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()) { @@ -502,6 +503,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); @@ -522,7 +524,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);