]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: thread DoutPrefixProvider into fetch_remote_obj
authorAli Maredia <amaredia@redhat.com>
Mon, 4 Mar 2019 18:42:37 +0000 (13:42 -0500)
committerAli Maredia <amaredia@redhat.com>
Mon, 22 Apr 2019 15:30:47 +0000 (11:30 -0400)
This is for the AtomicObjProcessor declared there

Signed-off-by: Ali Maredia <amaredia@redhat.com>
src/rgw/rgw_cr_rados.cc
src/rgw/rgw_cr_rados.h
src/rgw/rgw_data_sync.cc
src/rgw/rgw_op.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h

index d2bead2b49ae5bf57dd56589f76b04b3cc3f67cf..3f4db80f4d19826527ca37cd828e981669d6cd6e 100644 (file)
@@ -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);
 
index e919217cbaac02b9a4248ea86fa2f378868cb289..dd68052d3a486b644a0af66024f1be1c84369d3c 100644 (file)
@@ -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<rgw_obj_key>& _dest_key,
                          std::optional<uint64_t> _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<rgw_obj_key>& _dest_key,
                       std::optional<uint64_t> _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;
   }
index 6c8d4236cd1653160d46fc41ac1021262cfe54d3..e34b655aba1c4cb1838ac281b1ace3e2343dce12 100644 (file)
@@ -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,
index 4e77bdbda588cd147fd0503033c838d8bd88d74c..b5a0476b9871fe7f0c20a841ffefa87ee1fcd939 100644 (file)
@@ -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()
index 2f66f78ffbc53d1d964fd1ef8f8d53d6a412952a..7e7b9fa7d2a5013c58fc0640bff068506a947ae2 100644 (file)
@@ -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<uint64_t>* 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<string, bufferlist> src_attrs;
index 5f280cd8743175ef56aebaedec640a6eda180dfb..244750d120a1dd7a06a8f96d3091943c3c8d1698 100644 (file)
@@ -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<string, bufferlist>& 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<uint64_t>* 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,