summaryrefslogtreecommitdiffstats
path: root/src/rgw/rgw_file.cc
diff options
context:
space:
mode:
authorCasey Bodley <cbodley@redhat.com>2023-12-07 04:38:27 +0100
committerCasey Bodley <cbodley@redhat.com>2024-04-10 18:53:04 +0200
commit1d29b7056983825e7095c518edc7b3d4dcdf0b05 (patch)
tree97f1f1eabc155ae3f7316c2afb7131bc76fa06cc /src/rgw/rgw_file.cc
parentrgw/acl: use ACLOwners for create_default() (diff)
downloadceph-1d29b7056983825e7095c518edc7b3d4dcdf0b05.tar.xz
ceph-1d29b7056983825e7095c518edc7b3d4dcdf0b05.zip
rgw/sal: pass in ACLOwner for object writes
`ACLOwner` contains both the user id and display name. the bucket index needs both values for: ``` struct rgw_bucket_dir_entry_meta { ... std::string owner; std::string owner_display_name; ``` `RGWRados::Bucket::UpdateIndex::complete()` relied on the parsing of `RGW_ATTR_ACL` to get those values. but object write operations already had that information earlier in the call stack, so we might as well pass them in directly for other operations like the copy/rewrite/transition of existing objects, we decode the owner from the source object's `RGW_ATTR_ACL` the existing `owner` param was confusing, as it represented the bucket owner for quota stats updates. this get renamed to `bucket_owner` inside of `RGWRados`, and hidden from the outside. bucket stats are attributed to `RGWBucketInfo::owner`, not the `ACLOwner`, so we use that instead of `s->bucket_owner` Signed-off-by: Casey Bodley <cbodley@redhat.com>
Diffstat (limited to 'src/rgw/rgw_file.cc')
-rw-r--r--src/rgw/rgw_file.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rgw/rgw_file.cc b/src/rgw/rgw_file.cc
index 3424d4b04d7..66e883e7257 100644
--- a/src/rgw/rgw_file.cc
+++ b/src/rgw/rgw_file.cc
@@ -1872,7 +1872,7 @@ namespace rgw {
}
}
processor = get_driver()->get_atomic_writer(this, state->yield, state->object.get(),
- state->bucket_owner.id,
+ state->bucket_owner,
&state->dest_placement, 0, state->req_id);
op_ret = processor->prepare(state->yield);