From: Jason Dillaman Date: Mon, 2 Mar 2020 20:34:22 +0000 (-0500) Subject: rbd-mirror: move resetting of snapshot replayer rescan variable X-Git-Tag: v15.1.1~153^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=725d96320791e866f42b002176946997e548a0da;p=ceph-ci.git rbd-mirror: move resetting of snapshot replayer rescan variable The `m_image_updated` boolean should be reset at the start of the state checking loop now that we scan the local image meta and check for forced-promotion of the local image. Signed-off-by: Jason Dillaman --- diff --git a/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc b/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc index 3d5003a0c1b..2bb495913a5 100644 --- a/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc +++ b/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc @@ -279,6 +279,12 @@ template void Replayer::load_local_image_meta() { dout(10) << dendl; + { + // reset state in case new snapshot is added while we are scanning + std::unique_lock locker{m_lock}; + m_image_updated = false; + } + ceph_assert(m_state_builder->local_image_meta != nullptr); auto ctx = create_context_callback< Replayer, &Replayer::handle_load_local_image_meta>(this); @@ -461,9 +467,6 @@ void Replayer::scan_remote_mirror_snapshots( std::unique_lock* locker) { dout(10) << dendl; - // reset state in case new snapshot is added while we are scanning - m_image_updated = false; - bool split_brain = false; bool remote_demoted = false; auto remote_image_ctx = m_state_builder->remote_image_ctx;