summaryrefslogtreecommitdiffstats
path: root/src/rgw/rgw_cr_rados.h
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@redhat.com>2019-11-20 05:01:57 +0100
committerYehuda Sadeh <yehuda@redhat.com>2020-01-28 19:20:39 +0100
commit82df2faa1dbacec1e105a23fe4907dc28d0ed940 (patch)
tree034b706f5f2196d838f8e5d1c9281d3d6d229c42 /src/rgw/rgw_cr_rados.h
parentrgw: prepare for system and user mode changes (diff)
downloadceph-82df2faa1dbacec1e105a23fe4907dc28d0ed940.tar.xz
ceph-82df2faa1dbacec1e105a23fe4907dc28d0ed940.zip
rgw: sync: user mode sync pipes fetch objects using effective uid
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Diffstat (limited to 'src/rgw/rgw_cr_rados.h')
-rw-r--r--src/rgw/rgw_cr_rados.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/rgw/rgw_cr_rados.h b/src/rgw/rgw_cr_rados.h
index f5c8f67b2b8..289ff546486 100644
--- a/src/rgw/rgw_cr_rados.h
+++ b/src/rgw/rgw_cr_rados.h
@@ -920,6 +920,8 @@ class RGWAsyncFetchRemoteObj : public RGWAsyncRadosRequest {
rgw::sal::RGWRadosStore *store;
rgw_zone_id source_zone;
+ std::optional<rgw_user> user_id;
+
rgw_bucket src_bucket;
std::optional<rgw_placement_rule> dest_placement_rule;
RGWBucketInfo dest_bucket_info;
@@ -941,6 +943,7 @@ protected:
public:
RGWAsyncFetchRemoteObj(RGWCoroutine *caller, RGWAioCompletionNotifier *cn, rgw::sal::RGWRadosStore *_store,
const rgw_zone_id& _source_zone,
+ std::optional<rgw_user>& _user_id,
const rgw_bucket& _src_bucket,
std::optional<rgw_placement_rule> _dest_placement_rule,
const RGWBucketInfo& _dest_bucket_info,
@@ -953,6 +956,7 @@ public:
PerfCounters* counters, const DoutPrefixProvider *dpp)
: RGWAsyncRadosRequest(caller, cn), store(_store),
source_zone(_source_zone),
+ user_id(_user_id),
src_bucket(_src_bucket),
dest_placement_rule(_dest_placement_rule),
dest_bucket_info(_dest_bucket_info),
@@ -976,6 +980,8 @@ class RGWFetchRemoteObjCR : public RGWSimpleCoroutine {
rgw::sal::RGWRadosStore *store;
rgw_zone_id source_zone;
+ std::optional<rgw_user> user_id;
+
rgw_bucket src_bucket;
std::optional<rgw_placement_rule> dest_placement_rule;
RGWBucketInfo dest_bucket_info;
@@ -998,6 +1004,7 @@ class RGWFetchRemoteObjCR : public RGWSimpleCoroutine {
public:
RGWFetchRemoteObjCR(RGWAsyncRadosProcessor *_async_rados, rgw::sal::RGWRadosStore *_store,
const rgw_zone_id& _source_zone,
+ std::optional<rgw_user> _user_id,
const rgw_bucket& _src_bucket,
std::optional<rgw_placement_rule> _dest_placement_rule,
const RGWBucketInfo& _dest_bucket_info,
@@ -1011,6 +1018,7 @@ public:
: RGWSimpleCoroutine(_store->ctx()), cct(_store->ctx()),
async_rados(_async_rados), store(_store),
source_zone(_source_zone),
+ user_id(_user_id),
src_bucket(_src_bucket),
dest_placement_rule(_dest_placement_rule),
dest_bucket_info(_dest_bucket_info),
@@ -1036,7 +1044,7 @@ public:
int send_request() override {
req = new RGWAsyncFetchRemoteObj(this, stack->create_completion_notifier(), store,
- source_zone, src_bucket, dest_placement_rule, dest_bucket_info,
+ source_zone, user_id, src_bucket, dest_placement_rule, dest_bucket_info,
key, dest_key, versioned_epoch, copy_if_newer, filter,
zones_trace, counters, dpp);
async_rados->queue(req);