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)
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,
class RGWRadosRemoveOmapKeysCR : public RGWSimpleCoroutine {
RGWRados *store;
- string marker;
- map<string, bufferlist> *entries;
- int max_entries;
-
- int rval;
librados::IoCtx ioctx;
set<string> keys;
rgw_bucket pool;
string oid;
- RGWAioCompletionNotifier *cn;
+ boost::intrusive_ptr<RGWAioCompletionNotifier> cn;
public:
RGWRadosRemoveOmapKeysCR(RGWRados *_store,
int send_request();
- int request_complete() {
- return rval;
- }
+ int request_complete();
};
class RGWSimpleRadosLockCR : public RGWSimpleCoroutine {