int r = m_image_ctx.md_ctx.aio_operate(oid, comp, &op);
assert(r == 0);
+ comp->release();
}
void ObjectMap::aio_resize(uint64_t new_size, uint8_t default_object_state,
op.assert_exists();
int r = m_image_ctx.data_ctx.aio_operate(m_oid, comp, &op, NULL);
assert(r == 0);
+ comp->release();
}
bool update_object_map(bool exists) {
cls_client::set_flags(&op, m_image_ctx.snap_id, 0,
RBD_FLAG_OBJECT_MAP_INVALID);
- int r = m_image_ctx.md_ctx.aio_operate(m_image_ctx.header_oid,
- create_callback_completion(), &op);
+ librados::AioCompletion *comp = create_callback_completion();
+ int r = m_image_ctx.md_ctx.aio_operate(m_image_ctx.header_oid, comp, &op);
assert(r == 0);
+ comp->release();
RWLock::WLocker snap_locker(m_image_ctx.snap_lock);
m_image_ctx.update_flags(m_image_ctx.snap_id, RBD_FLAG_OBJECT_MAP_INVALID,