NULL, /* string *petag, */
NULL, /* void (*progress_cb)(off_t, void *), */
NULL, /* void *progress_data*); */
+ dpp,
&zones_trace,
&bytes_transferred);
bool copy_if_newer;
rgw_zone_set zones_trace;
PerfCounters* counters;
+ const DoutPrefixProvider *dpp;
protected:
int _send_request() override;
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),
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;
RGWAsyncFetchRemoteObj *req;
rgw_zone_set *zones_trace;
PerfCounters* counters;
+ const DoutPrefixProvider *dpp;
public:
RGWFetchRemoteObjCR(RGWAsyncRadosProcessor *_async_rados, RGWRados *_store,
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),
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 {
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;
}
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,
op_ret = store->swift_versioning_copy(obj_ctx,
s->bucket_owner.get_id(),
s->bucket_info,
- obj);
+ obj,
+ this);
if (op_ret < 0) {
return;
}
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;
}
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;
}
(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()
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;
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 */
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;
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 */
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)
{
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();
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;
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,
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;
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,
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);
/**
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,