From: Jason Dillaman Date: Thu, 11 Feb 2021 20:54:01 +0000 (-0500) Subject: librbd/mirror: leave non-primary snapshot images in creating state X-Git-Tag: v16.2.0~185^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F39439%2Fhead;p=ceph.git librbd/mirror: leave non-primary snapshot images in creating state The creating state is a special case in rbd-mirror where it will automatically delete the image since it assumes it's malformed. A non-primary, snapshot-based mirror image needs to have at least one non-primary snapshot and the first one is not created until after replay has started. Now rbd-mirror will update the mirror image state to the enabled state after creating the first non-primary snapshot but before attempting the sync. Fixes: https://tracker.ceph.com/issues/49238 Signed-off-by: Jason Dillaman (cherry picked from commit 43f2c208fa3042d93e4810d804ffe28e9ca7af77) --- diff --git a/src/librbd/mirror/EnableRequest.cc b/src/librbd/mirror/EnableRequest.cc index c7f7d8746f0d..fd74a25ba655 100644 --- a/src/librbd/mirror/EnableRequest.cc +++ b/src/librbd/mirror/EnableRequest.cc @@ -288,7 +288,7 @@ void EnableRequest::handle_enable_non_primary_feature(int r) { return; } - image_state_update(); + finish(0); } template diff --git a/src/librbd/mirror/EnableRequest.h b/src/librbd/mirror/EnableRequest.h index 64f410a8e066..391028e6e5db 100644 --- a/src/librbd/mirror/EnableRequest.h +++ b/src/librbd/mirror/EnableRequest.h @@ -69,7 +69,7 @@ private: * v (skip if not needed) * * ENABLE_NON_PRIMARY_FEATURE * * | * - * v * + * v (skip if not needed) * * IMAGE_STATE_UPDATE * * * * * * * | * * v *