From: Jason Dillaman Date: Tue, 22 Mar 2016 22:51:34 +0000 (-0400) Subject: rbd-mirror: properly initialize image copy start/end objects X-Git-Tag: v10.1.1~64^2~24 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d9ee1e7270340cdf5c36fb21fb8d4957fad5219f;p=ceph.git rbd-mirror: properly initialize image copy start/end objects Signed-off-by: Jason Dillaman --- diff --git a/src/tools/rbd_mirror/image_sync/ImageCopyRequest.cc b/src/tools/rbd_mirror/image_sync/ImageCopyRequest.cc index aedf2f5321d..e22eb5f3158 100644 --- a/src/tools/rbd_mirror/image_sync/ImageCopyRequest.cc +++ b/src/tools/rbd_mirror/image_sync/ImageCopyRequest.cc @@ -69,7 +69,7 @@ void ImageCopyRequest::send_update_max_object_count() { } } - if (max_objects == m_client_meta->sync_object_count) { + if (max_objects <= m_client_meta->sync_object_count) { send_object_copies(); return; } @@ -103,11 +103,6 @@ void ImageCopyRequest::handle_update_max_object_count(int r) { // update provided meta structure to reflect reality m_client_meta->sync_object_count = m_client_meta_copy.sync_object_count; - m_object_no = 0; - if (m_sync_point->object_number) { - m_object_no = *m_sync_point->object_number + 1; - } - m_end_object_no = m_client_meta_copy.sync_object_count; send_object_copies(); } @@ -115,6 +110,16 @@ void ImageCopyRequest::handle_update_max_object_count(int r) { template void ImageCopyRequest::send_object_copies() { CephContext *cct = m_local_image_ctx->cct; + + m_object_no = 0; + if (m_sync_point->object_number) { + m_object_no = *m_sync_point->object_number + 1; + } + m_end_object_no = m_client_meta->sync_object_count; + + dout(20) << ": start_object=" << m_object_no << ", " + << "end_object=" << m_end_object_no << dendl; + bool complete; { Mutex::Locker locker(m_lock);