]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: SimpleRadosReadAttrsCR takes objv_tracker
authorCasey Bodley <cbodley@redhat.com>
Tue, 31 Mar 2020 13:23:20 +0000 (09:23 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 13 Apr 2020 18:08:18 +0000 (14:08 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_cr_rados.cc
src/rgw/rgw_cr_rados.h

index 8d80a13391fe9c6cbbe40b62a591232e48b8d4ef..f0d46ba83a61088acbf9534691dac04f9f77517a 100644 (file)
@@ -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();
 }
 
index 23c75438d12e998889942ea74229508a43c86382..df31131e2176d13ac2ec6ad5b3472aff30fa348b 100644 (file)
@@ -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<string, bufferlist> attrs;
+  RGWObjVersionTracker objv_tracker;
 };
 
 class RGWAsyncPutSystemObj : public RGWAsyncRadosRequest {
@@ -456,17 +456,20 @@ class RGWSimpleRadosReadAttrsCR : public RGWSimpleCoroutine {
   rgw_raw_obj obj;
   map<string, bufferlist> *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<string, bufferlist> *_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<string, bufferlist> *_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();
   }