From: Jason Dillaman Date: Tue, 7 Apr 2020 23:12:03 +0000 (-0400) Subject: rbd-mirror: ignore non-primary read-only state for remote images X-Git-Tag: v16.1.0~2588^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6bf2132cf041f6ab16c86e46b5acd4cf2ce12060;p=ceph.git 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 --- diff --git a/src/tools/rbd_mirror/image_replayer/OpenImageRequest.cc b/src/tools/rbd_mirror/image_replayer/OpenImageRequest.cc index 7f55745e124..0827a1dcaa7 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);