NULL, /* string *petag, */
NULL, /* void (*progress_cb)(off_t, void *), */
NULL, /* void *progress_data*); */
- zones_trace);
+ &zones_trace);
if (r < 0) {
ldout(store->ctx(), 0) << "store->fetch_remote_obj() returned r=" << r << dendl;
del_op.params.obj_owner.set_name(owner_display_name);
del_op.params.mtime = timestamp;
del_op.params.high_precision_time = true;
- del_op.params.zones_trace = zones_trace;
+ del_op.params.zones_trace = &zones_trace;
ret = del_op.delete_obj();
if (ret < 0) {
real_time src_mtime;
bool copy_if_newer;
- rgw_zone_set *zones_trace;
+ rgw_zone_set zones_trace;
protected:
int _send_request() override;
bucket_info(_bucket_info),
key(_key),
versioned_epoch(_versioned_epoch),
- copy_if_newer(_if_newer), zones_trace(_zones_trace) {}
+ copy_if_newer(_if_newer)
+ {
+ if (_zones_trace) {
+ zones_trace = *_zones_trace;
+ }
+ }
};
class RGWFetchRemoteObjCR : public RGWSimpleCoroutine {
bool del_if_older;
ceph::real_time timestamp;
- rgw_zone_set *zones_trace;
+ rgw_zone_set zones_trace;
protected:
int _send_request() override;
versioned(_versioned),
versioned_epoch(_versioned_epoch),
del_if_older(_if_older),
- timestamp(_timestamp), zones_trace(_zones_trace) {
+ timestamp(_timestamp) {
if (_delete_marker) {
marker_version_id = key.instance;
}
+
+ if (_zones_trace) {
+ zones_trace = *_zones_trace;
+ }
}
};