From e18e413b602208b38f432f4ba5bcb187fe102cb1 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 8 Apr 2019 13:42:16 -0400 Subject: [PATCH] librbd: force a copyup object map update if migration completes If a live-migration copyup was in-progress when the copyup completes, force the object map to be updated. Signed-off-by: Jason Dillaman --- src/librbd/io/CopyupRequest.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/librbd/io/CopyupRequest.cc b/src/librbd/io/CopyupRequest.cc index d2727dd7d64b..2299d3bf3419 100644 --- a/src/librbd/io/CopyupRequest.cc +++ b/src/librbd/io/CopyupRequest.cc @@ -552,6 +552,12 @@ bool CopyupRequest::is_update_object_map_required(int r) { return false; } + if (m_image_ctx->migration_info.empty()) { + // migration might have completed while IO was in-flight, + // assume worst-case and perform an object map update + return true; + } + auto it = m_image_ctx->migration_info.snap_map.find(CEPH_NOSNAP); ceph_assert(it != m_image_ctx->migration_info.snap_map.end()); return it->second[0] != CEPH_NOSNAP; -- 2.47.3