From: Jason Dillaman Date: Tue, 17 May 2016 20:14:42 +0000 (-0400) Subject: rbd-mirror: lock ordering issue in status update callback X-Git-Tag: v11.0.0~496^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5c04c1361074ca9e9df1bc1c2dd82dfafc2a1304;p=ceph.git rbd-mirror: lock ordering issue in status update callback Signed-off-by: Jason Dillaman --- diff --git a/src/tools/rbd_mirror/ImageSync.cc b/src/tools/rbd_mirror/ImageSync.cc index 2c6f5aa58f7..24202f496f1 100644 --- a/src/tools/rbd_mirror/ImageSync.cc +++ b/src/tools/rbd_mirror/ImageSync.cc @@ -210,6 +210,8 @@ void ImageSync::handle_copy_image(int r) { template void ImageSync::send_copy_object_map() { + update_progress("COPY_OBJECT_MAP"); + m_local_image_ctx->snap_lock.get_read(); if (!m_local_image_ctx->test_features(RBD_FEATURE_OBJECT_MAP, m_local_image_ctx->snap_lock)) { @@ -218,8 +220,6 @@ void ImageSync::send_copy_object_map() { return; } - update_progress("COPY_OBJECT_MAP"); - assert(m_local_image_ctx->object_map != nullptr); assert(!m_client_meta->sync_points.empty());