]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: minor refactor in create_v1()
authorVenky Shankar <vshankar@redhat.com>
Wed, 29 Jun 2016 08:25:20 +0000 (13:55 +0530)
committerVenky Shankar <vshankar@redhat.com>
Sun, 7 Aug 2016 13:23:59 +0000 (18:53 +0530)
create_v2() uses util::generate_image_id() therefore not
requiring 'bid' to be passed in as parameter. This makes
bid generation in create() unnecessary -- hence move this
call to create_v1().

Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/librbd/internal.cc

index e7502e58f8f249e340525203ae2de960181bab63..3105968f54946bb52e1b603bfc2fb1154e8fda34 100644 (file)
@@ -1067,8 +1067,7 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force,
     return r;
   }
 
-  int create_v1(IoCtx& io_ctx, const char *imgname, uint64_t bid,
-               uint64_t size, int order)
+  int create_v1(IoCtx& io_ctx, const char *imgname, uint64_t size, int order)
   {
     CephContext *cct = (CephContext *)io_ctx.cct();
 
@@ -1085,6 +1084,9 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force,
       return r;
     }
 
+    Rados rados(io_ctx);
+    uint64_t bid = rados.get_instance_id();
+
     ldout(cct, 2) << "creating rbd image..." << dendl;
     struct rbd_obj_header_ondisk header;
     init_rbd_header(header, size, order, bid);
@@ -1430,9 +1432,6 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force,
       return -EDOM;
     }
 
-    Rados rados(io_ctx);
-    uint64_t bid = rados.get_instance_id();
-
     if ((features & RBD_FEATURE_STRIPINGV2) == 0 &&
        ((stripe_unit && stripe_unit != (1ull << order)) ||
         (stripe_count && stripe_count != 1))) {
@@ -1456,7 +1455,7 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force,
       if (stripe_count && stripe_count != 1)
        return -EINVAL;
 
-      r = create_v1(io_ctx, imgname, bid, size, order);
+      r = create_v1(io_ctx, imgname, size, order);
     } else {
       uint64_t journal_order = cct->_conf->rbd_journal_order;
       uint64_t journal_splay_width = cct->_conf->rbd_journal_splay_width;