From 0c6812b67d3dac71ab8278adaf4fa0f68f0122d6 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Tue, 7 Apr 2020 19:12:03 -0400 Subject: [PATCH] rbd-mirror: ignore non-primary read-only state for remote images snapshot-based mirroring needs to be able to potentially delete a demotion snapshot during the unlink process. Previously, these snapshots have been left while the read-only error was ignored. Signed-off-by: Jason Dillaman (cherry picked from commit 6bf2132cf041f6ab16c86e46b5acd4cf2ce12060) --- src/tools/rbd_mirror/image_replayer/OpenImageRequest.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/tools/rbd_mirror/image_replayer/OpenImageRequest.cc b/src/tools/rbd_mirror/image_replayer/OpenImageRequest.cc index 7f55745e1247a..0827a1dcaa7f6 100644 --- a/src/tools/rbd_mirror/image_replayer/OpenImageRequest.cc +++ b/src/tools/rbd_mirror/image_replayer/OpenImageRequest.cc @@ -40,6 +40,11 @@ void OpenImageRequest::send_open_image() { *m_image_ctx = I::create("", m_image_id, nullptr, m_io_ctx, m_read_only); + if (!m_read_only) { + // ensure non-primary images can be modified + (*m_image_ctx)->read_only_mask = ~librbd::IMAGE_READ_ONLY_FLAG_NON_PRIMARY; + } + Context *ctx = create_context_callback< OpenImageRequest, &OpenImageRequest::handle_open_image>( this); -- 2.39.5