]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd / CopyupRequest: use data pool ctx during copyup
authorVenky Shankar <vshankar@redhat.com>
Thu, 10 Nov 2016 09:17:57 +0000 (14:47 +0530)
committerVenky Shankar <vshankar@redhat.com>
Sun, 20 Nov 2016 15:51:50 +0000 (21:21 +0530)
Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/librbd/CopyupRequest.cc
src/librbd/CopyupRequest.h

index cbb04cb9606ea4ebfa90a2d6c6024d54c6464c7f..adf14c7f56a084006fb72c6c7240373819afab70 100644 (file)
@@ -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, &copyup_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, &copyup_op, 0, snaps);
     assert(r == 0);
     comp->release();
   }
index 0ae6013f69166cb662a2cecfe003a4464867bd1c..a0edbf3accab9a11aeadeb8e6f4db7605ef21ff7 100644 (file)
@@ -74,6 +74,7 @@ private:
   AsyncOperation m_async_op;
 
   std::vector<uint64_t> m_snap_ids;
+  librados::IoCtx m_data_ctx; // for empty SnapContext
 
   void complete_requests(int r);