bufferlist bl;
rgw_raw_obj obj;
RGWObjVersionTracker *objv_tracker;
+ bool exclusive;
RGWAsyncPutSystemObj *req{nullptr};
public:
RGWSimpleRadosWriteCR(RGWAsyncRadosProcessor *_async_rados, RGWSI_SysObj *_svc,
- const rgw_raw_obj& _obj,
- const T& _data, RGWObjVersionTracker *objv_tracker = nullptr)
+ const rgw_raw_obj& _obj, const T& _data,
+ RGWObjVersionTracker *objv_tracker = nullptr,
+ bool exclusive = false)
: RGWSimpleCoroutine(_svc->ctx()), async_rados(_async_rados),
- svc(_svc), obj(_obj), objv_tracker(objv_tracker) {
+ svc(_svc), obj(_obj), objv_tracker(objv_tracker), exclusive(exclusive) {
encode(_data, bl);
}
int send_request() override {
req = new RGWAsyncPutSystemObj(this, stack->create_completion_notifier(),
- svc, objv_tracker, obj, false, std::move(bl));
+ svc, objv_tracker, obj, exclusive, std::move(bl));
async_rados->queue(req);
return 0;
}