From 2be8fd01408de8286ef42a09a2560b89f6e45df8 Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Mon, 18 Feb 2019 11:37:09 +0100 Subject: [PATCH] librbd: don't clone IoCtx in send_copyup() Calling aio_operate() with the explicit snap_seq and snaps doesn't mutate IoCtx, so no reason to clone it. Signed-off-by: Ilya Dryomov --- src/librbd/io/CopyupRequest.cc | 6 ++---- src/librbd/io/CopyupRequest.h | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/librbd/io/CopyupRequest.cc b/src/librbd/io/CopyupRequest.cc index 7e34112c741..dddaa369fc8 100644 --- a/src/librbd/io/CopyupRequest.cc +++ b/src/librbd/io/CopyupRequest.cc @@ -145,12 +145,10 @@ bool CopyupRequest::send_copyup() { // this is a CoW request, a second request will be created for the // actual modification. m_pending_copyups++; - ldout(m_ictx->cct, 20) << "copyup with empty snapshot context" << dendl; - librados::AioCompletion *comp = util::create_rados_callback(this); - m_data_ctx.dup(m_ictx->data_ctx); - r = m_data_ctx.aio_operate( + librados::AioCompletion *comp = util::create_rados_callback(this); + r = m_ictx->data_ctx.aio_operate( m_oid, comp, ©up_op, 0, snaps, (m_trace.valid() ? m_trace.get_info() : nullptr)); ceph_assert(r == 0); diff --git a/src/librbd/io/CopyupRequest.h b/src/librbd/io/CopyupRequest.h index de793085622..fba71202372 100644 --- a/src/librbd/io/CopyupRequest.h +++ b/src/librbd/io/CopyupRequest.h @@ -100,7 +100,6 @@ private: AsyncOperation m_async_op; std::vector m_snap_ids; - librados::IoCtx m_data_ctx; // for empty SnapContext Mutex m_lock; -- 2.39.5