From: Casey Bodley Date: Tue, 31 Mar 2020 13:23:20 +0000 (-0400) Subject: rgw: SimpleRadosReadAttrsCR takes objv_tracker X-Git-Tag: v16.1.0~2586^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8d715d181403ae65172fb855b5f06c8885f360aa;p=ceph.git rgw: SimpleRadosReadAttrsCR takes objv_tracker Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_cr_rados.cc b/src/rgw/rgw_cr_rados.cc index 8d80a13391fe..f0d46ba83a61 100644 --- a/src/rgw/rgw_cr_rados.cc +++ b/src/rgw/rgw_cr_rados.cc @@ -123,7 +123,7 @@ RGWAsyncGetSystemObj::RGWAsyncGetSystemObj(RGWCoroutine *caller, RGWAioCompletio int RGWSimpleRadosReadAttrsCR::send_request() { req = new RGWAsyncGetSystemObj(this, stack->create_completion_notifier(), - svc, nullptr, obj, true, raw_attrs); + svc, objv_tracker, obj, true, raw_attrs); async_rados->queue(req); return 0; } @@ -133,6 +133,9 @@ int RGWSimpleRadosReadAttrsCR::request_complete() if (pattrs) { *pattrs = std::move(req->attrs); } + if (objv_tracker) { + *objv_tracker = req->objv_tracker; + } return req->get_ret_status(); } diff --git a/src/rgw/rgw_cr_rados.h b/src/rgw/rgw_cr_rados.h index 23c75438d12e..df31131e2176 100644 --- a/src/rgw/rgw_cr_rados.h +++ b/src/rgw/rgw_cr_rados.h @@ -296,7 +296,6 @@ private: class RGWAsyncGetSystemObj : public RGWAsyncRadosRequest { RGWSysObjectCtx obj_ctx; - RGWObjVersionTracker objv_tracker; rgw_raw_obj obj; const bool want_attrs; const bool raw_attrs; @@ -309,6 +308,7 @@ public: bufferlist bl; map attrs; + RGWObjVersionTracker objv_tracker; }; class RGWAsyncPutSystemObj : public RGWAsyncRadosRequest { @@ -456,17 +456,20 @@ class RGWSimpleRadosReadAttrsCR : public RGWSimpleCoroutine { rgw_raw_obj obj; map *pattrs; bool raw_attrs; - RGWAsyncGetSystemObj *req; + RGWObjVersionTracker* objv_tracker; + RGWAsyncGetSystemObj *req = nullptr; public: RGWSimpleRadosReadAttrsCR(RGWAsyncRadosProcessor *_async_rados, RGWSI_SysObj *_svc, - const rgw_raw_obj& _obj, - map *_pattrs, bool _raw_attrs) : RGWSimpleCoroutine(_svc->ctx()), - async_rados(_async_rados), svc(_svc), - obj(_obj), - pattrs(_pattrs), - raw_attrs(_raw_attrs), - req(NULL) {} + const rgw_raw_obj& _obj, map *_pattrs, + bool _raw_attrs, RGWObjVersionTracker* objv_tracker = nullptr) + : RGWSimpleCoroutine(_svc->ctx()), + async_rados(_async_rados), svc(_svc), + obj(_obj), + pattrs(_pattrs), + raw_attrs(_raw_attrs), + objv_tracker(objv_tracker) + {} ~RGWSimpleRadosReadAttrsCR() override { request_cleanup(); }