From: lu.shasha Date: Fri, 7 Jul 2017 03:09:02 +0000 (+0800) Subject: rgw:multisite: fix RGWRadosRemoveOmapKeysCR X-Git-Tag: v12.1.1~67^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=82a0b6ac2130a7f326473e5f376c214f59f50829;p=ceph.git rgw:multisite: fix RGWRadosRemoveOmapKeysCR 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 --- diff --git a/src/rgw/rgw_cr_rados.cc b/src/rgw/rgw_cr_rados.cc index 21f4a00f47a6..cd83d8aa0b69 100644 --- a/src/rgw/rgw_cr_rados.cc +++ b/src/rgw/rgw_cr_rados.cc @@ -316,6 +316,15 @@ int RGWRadosRemoveOmapKeysCR::send_request() { return ref.ioctx.aio_operate(ref.oid, cn->completion(), &op); } +int RGWRadosRemoveOmapKeysCR::request_complete() +{ + int r = cn->completion()->get_return_value(); + + set_status() << "request complete; ret=" << r; + + return r; +} + RGWRadosRemoveCR::RGWRadosRemoveCR(RGWRados *store, const rgw_raw_obj& obj) : RGWSimpleCoroutine(store->ctx()), store(store), obj(obj) { diff --git a/src/rgw/rgw_cr_rados.h b/src/rgw/rgw_cr_rados.h index c75fa5862f02..100e200b8ea7 100644 --- a/src/rgw/rgw_cr_rados.h +++ b/src/rgw/rgw_cr_rados.h @@ -441,18 +441,13 @@ public: class RGWRadosRemoveOmapKeysCR : public RGWSimpleCoroutine { RGWRados *store; - string marker; - map *entries; - int max_entries; - - int rval; rgw_rados_ref ref; set keys; rgw_raw_obj obj; - RGWAioCompletionNotifier *cn; + boost::intrusive_ptr cn; public: RGWRadosRemoveOmapKeysCR(RGWRados *_store, @@ -463,9 +458,7 @@ public: int send_request() override; - int request_complete() override { - return rval; - } + int request_complete() override; }; class RGWRadosRemoveCR : public RGWSimpleCoroutine {