From: Ali Maredia Date: Mon, 4 Mar 2019 18:42:37 +0000 (-0500) Subject: rgw: thread DoutPrefixProvider into fetch_remote_obj X-Git-Tag: v15.1.0~2860^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e972c80eccf2f3ee5219f6064e4b777d985b0fad;p=ceph.git rgw: thread DoutPrefixProvider into fetch_remote_obj This is for the AtomicObjProcessor declared there Signed-off-by: Ali Maredia --- diff --git a/src/rgw/rgw_cr_rados.cc b/src/rgw/rgw_cr_rados.cc index d2bead2b49ae..3f4db80f4d19 100644 --- a/src/rgw/rgw_cr_rados.cc +++ b/src/rgw/rgw_cr_rados.cc @@ -613,6 +613,7 @@ int RGWAsyncFetchRemoteObj::_send_request() NULL, /* string *petag, */ NULL, /* void (*progress_cb)(off_t, void *), */ NULL, /* void *progress_data*); */ + dpp, &zones_trace, &bytes_transferred); diff --git a/src/rgw/rgw_cr_rados.h b/src/rgw/rgw_cr_rados.h index e919217cbaac..dd68052d3a48 100644 --- a/src/rgw/rgw_cr_rados.h +++ b/src/rgw/rgw_cr_rados.h @@ -862,6 +862,7 @@ class RGWAsyncFetchRemoteObj : public RGWAsyncRadosRequest { bool copy_if_newer; rgw_zone_set zones_trace; PerfCounters* counters; + const DoutPrefixProvider *dpp; protected: int _send_request() override; @@ -874,7 +875,7 @@ public: const std::optional& _dest_key, std::optional _versioned_epoch, bool _if_newer, rgw_zone_set *_zones_trace, - PerfCounters* counters) + PerfCounters* counters, const DoutPrefixProvider *dpp) : RGWAsyncRadosRequest(caller, cn), store(_store), source_zone(_source_zone), bucket_info(_bucket_info), @@ -882,7 +883,8 @@ public: key(_key), dest_key(_dest_key), versioned_epoch(_versioned_epoch), - copy_if_newer(_if_newer), counters(counters) + copy_if_newer(_if_newer), counters(counters), + dpp(dpp) { if (_zones_trace) { zones_trace = *_zones_trace; @@ -910,6 +912,7 @@ class RGWFetchRemoteObjCR : public RGWSimpleCoroutine { RGWAsyncFetchRemoteObj *req; rgw_zone_set *zones_trace; PerfCounters* counters; + const DoutPrefixProvider *dpp; public: RGWFetchRemoteObjCR(RGWAsyncRadosProcessor *_async_rados, RGWRados *_store, @@ -920,7 +923,7 @@ public: const std::optional& _dest_key, std::optional _versioned_epoch, bool _if_newer, rgw_zone_set *_zones_trace, - PerfCounters* counters) + PerfCounters* counters, const DoutPrefixProvider *dpp) : RGWSimpleCoroutine(_store->ctx()), cct(_store->ctx()), async_rados(_async_rados), store(_store), source_zone(_source_zone), @@ -930,7 +933,7 @@ public: dest_key(_dest_key), versioned_epoch(_versioned_epoch), copy_if_newer(_if_newer), req(NULL), - zones_trace(_zones_trace), counters(counters) {} + zones_trace(_zones_trace), counters(counters), dpp(dpp) {} ~RGWFetchRemoteObjCR() override { @@ -948,7 +951,7 @@ public: req = new RGWAsyncFetchRemoteObj(this, stack->create_completion_notifier(), store, source_zone, bucket_info, dest_placement_rule, key, dest_key, versioned_epoch, copy_if_newer, - zones_trace, counters); + zones_trace, counters, dpp); async_rados->queue(req); return 0; } diff --git a/src/rgw/rgw_data_sync.cc b/src/rgw/rgw_data_sync.cc index 6c8d4236cd16..e34b655aba1c 100644 --- a/src/rgw/rgw_data_sync.cc +++ b/src/rgw/rgw_data_sync.cc @@ -1691,7 +1691,7 @@ RGWCoroutine *RGWDefaultDataSyncModule::sync_object(RGWDataSyncEnv *sync_env, RG return new RGWFetchRemoteObjCR(sync_env->async_rados, sync_env->store, sync_env->source_zone, bucket_info, std::nullopt, key, std::nullopt, versioned_epoch, - true, zones_trace, sync_env->counters); + true, zones_trace, sync_env->counters, sync_env->dpp); } RGWCoroutine *RGWDefaultDataSyncModule::remove_object(RGWDataSyncEnv *sync_env, RGWBucketInfo& bucket_info, rgw_obj_key& key, diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 4e77bdbda588..b5a0476b9871 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -3628,7 +3628,8 @@ void RGWPutObj::execute() op_ret = store->swift_versioning_copy(obj_ctx, s->bucket_owner.get_id(), s->bucket_info, - obj); + obj, + this); if (op_ret < 0) { return; } @@ -4552,7 +4553,7 @@ void RGWDeleteObj::execute() bool ver_restored = false; op_ret = store->swift_versioning_restore(*s->sysobj_ctx, *obj_ctx, s->bucket_owner.get_id(), - s->bucket_info, obj, ver_restored); + s->bucket_info, obj, ver_restored, this); if (op_ret < 0) { return; } @@ -4867,7 +4868,8 @@ void RGWCopyObj::execute() op_ret = store->swift_versioning_copy(obj_ctx, dest_bucket_info.owner, dest_bucket_info, - dst_obj); + dst_obj, + this); if (op_ret < 0) { return; } @@ -4896,8 +4898,8 @@ void RGWCopyObj::execute() (version_id.empty() ? NULL : &version_id), &s->req_id, /* use req_id as tag */ &etag, - copy_obj_progress_cb, (void *)this - ); + copy_obj_progress_cb, (void *)this, + this); } int RGWGetACLs::verify_permission() diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 2f66f78ffbc5..7e7b9fa7d2a5 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3334,7 +3334,8 @@ int RGWRados::on_last_entry_in_listing(RGWBucketInfo& bucket_info, int RGWRados::swift_versioning_copy(RGWObjectCtx& obj_ctx, const rgw_user& user, RGWBucketInfo& bucket_info, - rgw_obj& obj) + rgw_obj& obj, + const DoutPrefixProvider *dpp) { if (! swift_versioning_enabled(bucket_info)) { return 0; @@ -3411,7 +3412,8 @@ int RGWRados::swift_versioning_copy(RGWObjectCtx& obj_ctx, NULL, /* string *ptag */ NULL, /* string *petag */ NULL, /* void (*progress_cb)(off_t, void *) */ - NULL); /* void *progress_data */ + NULL, /* void *progress_data */ + dpp); if (r == -ECANCELED || r == -ENOENT) { /* Has already been overwritten, meaning another rgw process already * copied it out */ @@ -3426,7 +3428,8 @@ int RGWRados::swift_versioning_restore(RGWSysObjectCtx& sysobj_ctx, const rgw_user& user, RGWBucketInfo& bucket_info, rgw_obj& obj, - bool& restored) /* out */ + bool& restored, /* out */ + const DoutPrefixProvider *dpp) { if (! swift_versioning_enabled(bucket_info)) { return 0; @@ -3503,7 +3506,8 @@ int RGWRados::swift_versioning_restore(RGWSysObjectCtx& sysobj_ctx, nullptr, /* string *ptag */ nullptr, /* string *petag */ nullptr, /* void (*progress_cb)(off_t, void *) */ - nullptr); /* void *progress_data */ + nullptr, /* void *progress_data */ + dpp); if (ret == -ECANCELED || ret == -ENOENT) { /* Has already been overwritten, meaning another rgw process already * copied it out */ @@ -4260,6 +4264,7 @@ int RGWRados::fetch_remote_obj(RGWObjectCtx& obj_ctx, string *petag, void (*progress_cb)(off_t, void *), void *progress_data, + const DoutPrefixProvider *dpp, rgw_zone_set *zones_trace, std::optional* bytes_transferred) { @@ -4277,7 +4282,7 @@ int RGWRados::fetch_remote_obj(RGWObjectCtx& obj_ctx, using namespace rgw::putobj; const rgw_placement_rule *ptail_rule = (dest_placement_rule ? &(*dest_placement_rule) : nullptr); AtomicObjectProcessor processor(&aio, this, dest_bucket_info, ptail_rule, user_id, - obj_ctx, dest_obj, olh_epoch, tag); + obj_ctx, dest_obj, olh_epoch, tag, dpp); RGWRESTConn *conn; auto& zone_conn_map = svc.zone->get_zone_conn_map(); auto& zonegroup_conn_map = svc.zone->get_zonegroup_conn_map(); @@ -4568,7 +4573,8 @@ int RGWRados::copy_obj(RGWObjectCtx& obj_ctx, string *ptag, string *petag, void (*progress_cb)(off_t, void *), - void *progress_data) + void *progress_data, + const DoutprefixProvider *dpp) { int ret; uint64_t obj_size; @@ -4587,11 +4593,11 @@ int RGWRados::copy_obj(RGWObjectCtx& obj_ctx, remote_src = !zonegroup.equals(src_bucket_info.zonegroup); if (remote_src && remote_dest) { - ldout(cct, 0) << "ERROR: can't copy object when both src and dest buckets are remote" << dendl; + ldpp_dout(dpp, 0) << "ERROR: can't copy object when both src and dest buckets are remote" << dendl; return -EINVAL; } - ldout(cct, 5) << "Copy object " << src_obj.bucket << ":" << src_obj.get_oid() << " => " << dest_obj.bucket << ":" << dest_obj.get_oid() << dendl; + ldpp_dout(dpp, 5) << "Copy object " << src_obj.bucket << ":" << src_obj.get_oid() << " => " << dest_obj.bucket << ":" << dest_obj.get_oid() << dendl; if (remote_src || !source_zone.empty()) { return fetch_remote_obj(obj_ctx, user_id, info, source_zone, @@ -4599,7 +4605,7 @@ int RGWRados::copy_obj(RGWObjectCtx& obj_ctx, dest_placement, src_mtime, mtime, mod_ptr, unmod_ptr, high_precision_time, if_match, if_nomatch, attrs_mod, copy_if_newer, attrs, category, - olh_epoch, delete_at, ptag, petag, progress_cb, progress_data); + olh_epoch, delete_at, ptag, petag, progress_cb, progress_data, dpp); } map src_attrs; diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 5f280cd87431..244750d120a1 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -1848,13 +1848,15 @@ public: int swift_versioning_copy(RGWObjectCtx& obj_ctx, /* in/out */ const rgw_user& user, /* in */ RGWBucketInfo& bucket_info, /* in */ - rgw_obj& obj); /* in */ + rgw_obj& obj, /* in */ + const DoutPrefixProvider *dpp); /* in/out */ int swift_versioning_restore(RGWSysObjectCtx& sysobj_ctx, RGWObjectCtx& obj_ctx, /* in/out */ const rgw_user& user, /* in */ RGWBucketInfo& bucket_info, /* in */ rgw_obj& obj, /* in */ - bool& restored); /* out */ + bool& restored, /* out */ + const DoutPrefixProvider *dpp); /* in/out */ int copy_obj_to_remote_dest(RGWObjState *astate, map& src_attrs, RGWRados::Object::Read& read_op, @@ -1915,6 +1917,7 @@ public: string *petag, void (*progress_cb)(off_t, void *), void *progress_data, + const DoutPrefixProvider *dpp, rgw_zone_set *zones_trace= nullptr, std::optional* bytes_transferred = 0); /** @@ -1957,7 +1960,8 @@ public: string *ptag, string *petag, void (*progress_cb)(off_t, void *), - void *progress_data); + void *progress_data, + const DoutPrefixProvider *dpp); int copy_obj_data(RGWObjectCtx& obj_ctx, RGWBucketInfo& dest_bucket_info,