From: Venky Shankar Date: Thu, 10 Nov 2016 09:17:57 +0000 (+0530) Subject: librbd / CopyupRequest: use data pool ctx during copyup X-Git-Tag: v11.1.0~219^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=75def529ee1ada86dd01cfd7726b265cc40e1ead;p=ceph.git librbd / CopyupRequest: use data pool ctx during copyup Signed-off-by: Venky Shankar --- diff --git a/src/librbd/CopyupRequest.cc b/src/librbd/CopyupRequest.cc index cbb04cb9606e..adf14c7f56a0 100644 --- a/src/librbd/CopyupRequest.cc +++ b/src/librbd/CopyupRequest.cc @@ -146,7 +146,12 @@ bool CopyupRequest::send_copyup() { ldout(m_ictx->cct, 20) << __func__ << " " << this << " copyup with " << "empty snapshot context" << dendl; librados::AioCompletion *comp = util::create_rados_safe_callback(this); - r = m_ictx->md_ctx.aio_operate(m_oid, comp, ©up_op, 0, snaps); + + librados::Rados rados(m_ictx->data_ctx); + r = rados.ioctx_create2(m_ictx->data_ctx.get_id(), m_data_ctx); + assert(r == 0); + + r = m_data_ctx.aio_operate(m_oid, comp, ©up_op, 0, snaps); assert(r == 0); comp->release(); } diff --git a/src/librbd/CopyupRequest.h b/src/librbd/CopyupRequest.h index 0ae6013f6916..a0edbf3accab 100644 --- a/src/librbd/CopyupRequest.h +++ b/src/librbd/CopyupRequest.h @@ -74,6 +74,7 @@ private: AsyncOperation m_async_op; std::vector m_snap_ids; + librados::IoCtx m_data_ctx; // for empty SnapContext void complete_requests(int r);