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>
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)
{
class RGWRadosRemoveOmapKeysCR : public RGWSimpleCoroutine {
RGWRados *store;
- string marker;
- map<string, bufferlist> *entries;
- int max_entries;
-
- int rval;
rgw_rados_ref ref;
set<string> keys;
rgw_raw_obj obj;
- RGWAioCompletionNotifier *cn;
+ boost::intrusive_ptr<RGWAioCompletionNotifier> cn;
public:
RGWRadosRemoveOmapKeysCR(RGWRados *_store,
int send_request() override;
- int request_complete() override {
- return rval;
- }
+ int request_complete() override;
};
class RGWRadosRemoveCR : public RGWSimpleCoroutine {