]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw:multisite: fix RGWRadosRemoveOmapKeysCR 17156/head
authorlu.shasha <lu.shasha@eisoo.com>
Fri, 7 Jul 2017 03:09:02 +0000 (11:09 +0800)
committerNathan Cutler <ncutler@suse.com>
Tue, 22 Aug 2017 15:48:24 +0000 (17:48 +0200)
RGWRadosRemoveOmapKeysCR::request_complete return val is wrong. The return val should get from completion.  Some member variables is not used, clear up those variables.

Fixes:http://tracker.ceph.com/issues/20539

Signed-off-by: Shasha Lu <lu.shasha@eisoo.com>
(cherry picked from commit 82a0b6ac2130a7f326473e5f376c214f59f50829)

Conflicts:
src/rgw/rgw_cr_rados.cc (trivial resolution)
src/rgw/rgw_cr_rados.h (master does not have IoCtx, jewel does not have override)

src/rgw/rgw_cr_rados.cc
src/rgw/rgw_cr_rados.h

index 19fb94944d6d975f5c2dd4c10b275f2ba736f31f..8da06d359649ad86029718d7a962b9b7128a261e 100644 (file)
@@ -321,6 +321,15 @@ int RGWRadosRemoveOmapKeysCR::send_request() {
   return ioctx.aio_operate(oid, cn->completion(), &op);
 }
 
+int RGWRadosRemoveOmapKeysCR::request_complete()
+{
+  int r = cn->completion()->get_return_value();
+
+  set_status() << "request complete; ret=" << r;
+
+  return r;
+}
+
 RGWSimpleRadosLockCR::RGWSimpleRadosLockCR(RGWAsyncRadosProcessor *_async_rados, RGWRados *_store,
                       const rgw_bucket& _pool, const string& _oid, const string& _lock_name,
                       const string& _cookie,
index cc40ed1616f0e974d4802e6ada3fb44b007fcd29..1933a1bda03bf8b9d7682a819a1d23e5c12dbbb0 100644 (file)
@@ -442,11 +442,6 @@ public:
 class RGWRadosRemoveOmapKeysCR : public RGWSimpleCoroutine {
   RGWRados *store;
 
-  string marker;
-  map<string, bufferlist> *entries;
-  int max_entries;
-
-  int rval;
   librados::IoCtx ioctx;
 
   set<string> keys;
@@ -454,7 +449,7 @@ class RGWRadosRemoveOmapKeysCR : public RGWSimpleCoroutine {
   rgw_bucket pool;
   string oid;
 
-  RGWAioCompletionNotifier *cn;
+  boost::intrusive_ptr<RGWAioCompletionNotifier> cn;
 
 public:
   RGWRadosRemoveOmapKeysCR(RGWRados *_store,
@@ -465,9 +460,7 @@ public:
 
   int send_request();
 
-  int request_complete() {
-    return rval;
-  }
+  int request_complete();
 };
 
 class RGWSimpleRadosLockCR : public RGWSimpleCoroutine {