From: Jason Dillaman Date: Mon, 20 Apr 2020 22:33:32 +0000 (-0400) Subject: librbd: add non-primary global image id to mirror enable X-Git-Tag: v16.1.0~2505^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a90042b2546bdaa056610bd10d7dae0f5e5da18e;p=ceph.git librbd: add non-primary global image id to mirror enable The constructor that took an ImageCtx did not support passing the non-primary global image id and instead defaulted to an empty string. Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/api/Migration.cc b/src/librbd/api/Migration.cc index fb6a1078e1b..81f1ed0cd58 100644 --- a/src/librbd/api/Migration.cc +++ b/src/librbd/api/Migration.cc @@ -1496,7 +1496,7 @@ int Migration::enable_mirroring( C_SaferCond ctx; auto req = mirror::EnableRequest::create( - image_ctx, mirror_image_mode, &ctx); + image_ctx, mirror_image_mode, "", &ctx); req->send(); r = ctx.wait(); if (r < 0) { diff --git a/src/librbd/api/Mirror.cc b/src/librbd/api/Mirror.cc index 5e006690861..cc6c4da4e44 100644 --- a/src/librbd/api/Mirror.cc +++ b/src/librbd/api/Mirror.cc @@ -415,7 +415,7 @@ int Mirror::image_enable(I *ictx, mirror_image_mode_t mode, C_SaferCond ctx; auto req = mirror::EnableRequest::create( - ictx, static_cast(mode), &ctx); + ictx, static_cast(mode), "", &ctx); req->send(); r = ctx.wait(); diff --git a/src/librbd/image/CloneRequest.cc b/src/librbd/image/CloneRequest.cc index 3ab75556e56..cabd061aabe 100644 --- a/src/librbd/image/CloneRequest.cc +++ b/src/librbd/image/CloneRequest.cc @@ -486,8 +486,7 @@ void CloneRequest::enable_mirror() { Context *ctx = create_context_callback< klass, &klass::handle_enable_mirror>(this); auto req = mirror::EnableRequest::create( - m_imctx->md_ctx, m_id, m_mirror_image_mode, m_non_primary_global_image_id, - m_imctx->op_work_queue, ctx); + m_imctx, m_mirror_image_mode, m_non_primary_global_image_id, ctx); req->send(); } diff --git a/src/librbd/mirror/EnableRequest.h b/src/librbd/mirror/EnableRequest.h index 12ab0f035af..73bd54d7bd3 100644 --- a/src/librbd/mirror/EnableRequest.h +++ b/src/librbd/mirror/EnableRequest.h @@ -24,9 +24,11 @@ class EnableRequest { public: static EnableRequest *create(ImageCtxT *image_ctx, cls::rbd::MirrorImageMode mode, + const std::string &non_primary_global_image_id, Context *on_finish) { return new EnableRequest(image_ctx->md_ctx, image_ctx->id, image_ctx, mode, - "", image_ctx->op_work_queue, on_finish); + non_primary_global_image_id, + image_ctx->op_work_queue, on_finish); } static EnableRequest *create(librados::IoCtx &io_ctx, const std::string &image_id, diff --git a/src/librbd/operation/EnableFeaturesRequest.cc b/src/librbd/operation/EnableFeaturesRequest.cc index 398724a09f3..d33ff830539 100644 --- a/src/librbd/operation/EnableFeaturesRequest.cc +++ b/src/librbd/operation/EnableFeaturesRequest.cc @@ -420,8 +420,8 @@ void EnableFeaturesRequest::send_enable_mirror_image() { EnableFeaturesRequest, &EnableFeaturesRequest::handle_enable_mirror_image>(this); - mirror::EnableRequest *req = mirror::EnableRequest::create( - &image_ctx, cls::rbd::MIRROR_IMAGE_MODE_JOURNAL, ctx); + auto req = mirror::EnableRequest::create( + &image_ctx, cls::rbd::MIRROR_IMAGE_MODE_JOURNAL, "", ctx); req->send(); } diff --git a/src/test/librbd/image/test_mock_CloneRequest.cc b/src/test/librbd/image/test_mock_CloneRequest.cc index 41b362ab382..1d22702d0e9 100644 --- a/src/test/librbd/image/test_mock_CloneRequest.cc +++ b/src/test/librbd/image/test_mock_CloneRequest.cc @@ -186,11 +186,9 @@ template <> struct EnableRequest { Context* on_finish = nullptr; static EnableRequest* s_instance; - static EnableRequest* create(librados::IoCtx &io_ctx, - const std::string &image_id, + static EnableRequest* create(MockTestImageCtx* image_ctx, cls::rbd::MirrorImageMode mode, const std::string &non_primary_global_image_id, - MockContextWQ *op_work_queue, Context *on_finish) { ceph_assert(s_instance != nullptr); s_instance->on_finish = on_finish; diff --git a/src/test/librbd/operation/test_mock_EnableFeaturesRequest.cc b/src/test/librbd/operation/test_mock_EnableFeaturesRequest.cc index d33ce1db9ab..e63ea168eb7 100644 --- a/src/test/librbd/operation/test_mock_EnableFeaturesRequest.cc +++ b/src/test/librbd/operation/test_mock_EnableFeaturesRequest.cc @@ -96,6 +96,7 @@ public: static EnableRequest *create(MockOperationImageCtx *image_ctx, cls::rbd::MirrorImageMode mirror_image_mode, + const std::string& non_primary_global_image_id, Context *on_finish) { ceph_assert(s_instance != nullptr); s_instance->on_finish = on_finish;