public:
CephContext* cct;
RGWUserInfo* user;
+ boost::optional<RGWSysObjectCtx> sysobj_ctx;
/* unambiguiously return req_state */
inline struct req_state* get_state() { return this->RGWRequest::s; }
RGWRequest::init_state(_s);
RGWHandler::init(rados_ctx->get_store(), _s, io);
+ sysobj_ctx.emplace(store->svc.sysobj);
+
get_state()->obj_ctx = rados_ctx;
+ get_state()->sysobj_ctx = &(sysobj_ctx.get());
get_state()->req_id = store->svc.zone_utils->unique_id(id);
get_state()->trans_id = store->svc.zone_utils->unique_trans_id(id);
RGWRequest::init_state(&rstate);
RGWHandler::init(rados_ctx.get_store(), &rstate, &io_ctx);
+ sysobj_ctx.emplace(store->svc.sysobj);
+
get_state()->obj_ctx = &rados_ctx;
+ get_state()->sysobj_ctx = &(sysobj_ctx.get());
get_state()->req_id = store->svc.zone_utils->unique_id(id);
get_state()->trans_id = store->svc.zone_utils->unique_trans_id(id);
RGWRados *const store;
const RGWBucketInfo& bucket_info;
RGWObjectCtx& obj_ctx;
- const rgw_obj& head_obj;
+ const rgw_obj head_obj;
RGWSI_RADOS::Obj stripe_obj; // current stripe object
RawObjSet written; // set of written objects for deletion