From 75def529ee1ada86dd01cfd7726b265cc40e1ead Mon Sep 17 00:00:00 2001 From: Venky Shankar Date: Thu, 10 Nov 2016 14:47:57 +0530 Subject: [PATCH] librbd / CopyupRequest: use data pool ctx during copyup Signed-off-by: Venky Shankar --- src/librbd/CopyupRequest.cc | 7 ++++++- src/librbd/CopyupRequest.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/librbd/CopyupRequest.cc b/src/librbd/CopyupRequest.cc index cbb04cb9606..adf14c7f56a 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 0ae6013f691..a0edbf3acca 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); -- 2.39.5