]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: remove duplicative journal helper functions
authorJason Dillaman <dillaman@redhat.com>
Tue, 25 Apr 2017 16:36:10 +0000 (12:36 -0400)
committerJason Dillaman <dillaman@redhat.com>
Thu, 27 Apr 2017 19:54:13 +0000 (15:54 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/librbd/Journal.cc
src/librbd/Journal.h
src/librbd/api/Mirror.cc
src/tools/rbd_mirror/ImageDeleter.cc

index 050a87b355a5fd901ea5c2b168ebcfb328006fcf..792437f43be3332481be11bb5444fb262f092fda 100644 (file)
@@ -455,25 +455,6 @@ int Journal<I>::reset(librados::IoCtx &io_ctx, const std::string &image_id) {
   return 0;
 }
 
-template <typename I>
-int Journal<I>::is_tag_owner(I *image_ctx, bool *is_tag_owner) {
-  return Journal<I>::is_tag_owner(image_ctx->md_ctx, image_ctx->id,
-                                  is_tag_owner, image_ctx->op_work_queue);
-}
-
-template <typename I>
-int Journal<I>::is_tag_owner(librados::IoCtx& io_ctx, std::string& image_id,
-                             bool *is_tag_owner, ContextWQ *op_work_queue) {
-  C_SaferCond ctx;
-  Journal<I>::is_tag_owner(io_ctx, image_id, is_tag_owner, op_work_queue, &ctx);
-
-  int r = ctx.wait();
-  if (r < 0) {
-    return r;
-  }
-  return r;
-}
-
 template <typename I>
 void Journal<I>::is_tag_owner(I *image_ctx, bool *owner,
                               Context *on_finish) {
@@ -495,19 +476,6 @@ void Journal<I>::is_tag_owner(librados::IoCtx& io_ctx, std::string& image_id,
           &is_tag_owner_ctx->tag_data, is_tag_owner_ctx);
 }
 
-template <typename I>
-int Journal<I>::get_tag_owner(I *image_ctx, std::string *mirror_uuid) {
-  C_SaferCond get_tags_ctx;
-  get_tag_owner(image_ctx->md_ctx, image_ctx->id, mirror_uuid,
-                image_ctx->op_work_queue, &get_tags_ctx);
-
-  int r = get_tags_ctx.wait();
-  if (r < 0) {
-    return r;
-  }
-  return 0;
-}
-
 template <typename I>
 void Journal<I>::get_tag_owner(IoCtx& io_ctx, std::string& image_id,
                                std::string *mirror_uuid,
index 4aafefba6d7e51e662934d1862f6a35767b32098..b0db6e6ec06c02ef09091180aa78b57b77246908 100644 (file)
@@ -102,15 +102,11 @@ public:
   static int remove(librados::IoCtx &io_ctx, const std::string &image_id);
   static int reset(librados::IoCtx &io_ctx, const std::string &image_id);
 
-  static int is_tag_owner(ImageCtxT *image_ctx, bool *is_tag_owner);
-  static int is_tag_owner(librados::IoCtx& io_ctx, std::string& image_id,
-                          bool *is_tag_owner, ContextWQ *op_work_queue);
   static void is_tag_owner(ImageCtxT *image_ctx, bool *is_tag_owner,
                            Context *on_finish);
   static void is_tag_owner(librados::IoCtx& io_ctx, std::string& image_id,
                            bool *is_tag_owner, ContextWQ *op_work_queue,
                            Context *on_finish);
-  static int get_tag_owner(ImageCtxT *image_ctx, std::string *mirror_uuid);
   static void get_tag_owner(librados::IoCtx& io_ctx, std::string& image_id,
                             std::string *mirror_uuid,
                             ContextWQ *op_work_queue, Context *on_finish);
index 96b8421c98c69916b640bf59380202df5bffdfd1..7f42474623472dc54e2c08bf822591afeee2e325 100644 (file)
@@ -383,13 +383,15 @@ int Mirror<I>::image_resync(I *ictx) {
     return r;
   }
 
-  std::string mirror_uuid;
-  r = Journal<I>::get_tag_owner(ictx, &mirror_uuid);
+  C_SaferCond tag_owner_ctx;
+  bool is_tag_owner;
+  Journal<I>::is_tag_owner(ictx, &is_tag_owner, &tag_owner_ctx);
+  r = tag_owner_ctx.wait();
   if (r < 0) {
     lderr(cct) << "failed to determine tag ownership: " << cpp_strerror(r)
                << dendl;
     return r;
-  } else if (mirror_uuid == Journal<>::LOCAL_MIRROR_UUID) {
+  } else if (is_tag_owner) {
     lderr(cct) << "image is primary, cannot resync to itself" << dendl;
     return -EINVAL;
   }
index 8791033b26136bb74a843087dcdb581a342d28d4..59ffaa291b6b3bae5a7cfe44199ab17eea869342 100644 (file)
@@ -295,8 +295,10 @@ bool ImageDeleter::process_image_delete() {
   }
 
   bool is_primary = false;
-  r = Journal<>::is_tag_owner(ioctx, local_image_id, &is_primary,
-                              m_work_queue);
+  C_SaferCond tag_owner_ctx;
+  Journal<>::is_tag_owner(ioctx, local_image_id, &is_primary,
+                          m_work_queue, &tag_owner_ctx);
+  r = tag_owner_ctx.wait();
   if (r < 0 && r != -ENOENT) {
     derr << "error retrieving image primary info for image " << global_image_id
          << ": " << cpp_strerror(r) << dendl;