Skip to content

Commit 3e4664a

Browse files
authored
Merge pull request ceph#59253 from clwluvw/copy-source-attrs
rgw: load copy source bucket attrs in putobj Reviewed-by: Casey Bodley <[email protected]>
2 parents af74eef + 8a71aea commit 3e4664a

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/rgw/rgw_op.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3851,6 +3851,7 @@ int RGWPutObj::init_processing(optional_yield y) {
38513851
return ret;
38523852
}
38533853
copy_source_bucket_info = bucket->get_info();
3854+
copy_source_bucket_attrs = bucket->get_attrs();
38543855

38553856
/* handle x-amz-copy-source-range */
38563857
if (copy_source_range) {
@@ -3910,15 +3911,14 @@ int RGWPutObj::verify_permission(optional_yield y)
39103911

39113912
RGWAccessControlPolicy cs_acl;
39123913
boost::optional<Policy> policy;
3913-
map<string, bufferlist> cs_attrs;
39143914
auto cs_bucket = driver->get_bucket(copy_source_bucket_info);
39153915
auto cs_object = cs_bucket->get_object(rgw_obj_key(copy_source_object_name,
39163916
copy_source_version_id));
39173917
cs_object->set_atomic();
39183918
cs_object->set_prefetch_data();
39193919

39203920
/* check source object permissions */
3921-
int ret = read_obj_policy(this, driver, s, copy_source_bucket_info, cs_attrs, cs_acl, nullptr,
3921+
int ret = read_obj_policy(this, driver, s, copy_source_bucket_info, copy_source_bucket_attrs, cs_acl, nullptr,
39223922
policy, cs_bucket.get(), cs_object.get(), y, true);
39233923
if (ret < 0) {
39243924
return ret;
@@ -3927,7 +3927,7 @@ int RGWPutObj::verify_permission(optional_yield y)
39273927
RGWAccessControlPolicy cs_bucket_acl;
39283928
ret = rgw_op_get_bucket_policy_from_attr(this, s->cct, driver,
39293929
copy_source_bucket_info.owner,
3930-
cs_attrs, cs_bucket_acl, y);
3930+
copy_source_bucket_attrs, cs_bucket_acl, y);
39313931
if (ret < 0) {
39323932
return ret;
39333933
}

src/rgw/rgw_op.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1219,6 +1219,7 @@ class RGWPutObj : public RGWOp {
12191219
std::string copy_source;
12201220
const char *copy_source_range;
12211221
RGWBucketInfo copy_source_bucket_info;
1222+
rgw::sal::Attrs copy_source_bucket_attrs;
12221223
std::string copy_source_tenant_name;
12231224
std::string copy_source_bucket_name;
12241225
std::string copy_source_object_name;

0 commit comments

Comments
 (0)