class C_SimpleThrottle : public Context {
public:
- C_SimpleThrottle(SimpleThrottle *throttle) : m_throttle(throttle) {}
+ C_SimpleThrottle(SimpleThrottle *throttle) : m_throttle(throttle) {
+ m_throttle->start_op();
+ }
virtual void finish(int r) {
m_throttle->end_op(r);
}
ldout(cct, 2) << "trim_image objects " << delete_start << " to "
<< (num_objects - 1) << dendl;
for (uint64_t i = delete_start; i < num_objects; ++i) {
- throttle.start_op();
string oid = ictx->get_object_name(i);
Context *req_comp = new C_SimpleThrottle(&throttle);
librados::AioCompletion *rados_completion =
for (vector<ObjectExtent>::iterator p = extents.begin();
p != extents.end(); ++p) {
ldout(ictx->cct, 20) << " ex " << *p << dendl;
- throttle.start_op();
Context *req_comp = new C_SimpleThrottle(&throttle);
librados::AioCompletion *rados_completion =
librados::Rados::aio_create_completion(req_comp, NULL, rados_ctx_cb);
for (uint64_t i = 0; i < numseg; i++) {
string oid = ictx->get_object_name(i);
- throttle.start_op();
Context *req_comp = new C_SimpleThrottle(&throttle);
librados::AioCompletion *rados_completion =
librados::Rados::aio_create_completion(req_comp, NULL, rados_ctx_cb);
bufferlist bl;
string oid = ictx->get_object_name(ono);
- throttle.start_op();
Context *comp = new C_SimpleThrottle(&throttle);
AioWrite *req = new AioWrite(ictx, oid, ono, 0, objectx, object_overlap,
bl, snapc, CEPH_NOSNAP, comp);