From: Dongsheng Yang Date: Thu, 2 Jun 2016 08:32:15 +0000 (-0400) Subject: librbd/clone: set RBD_FEATURE_STRIPINGV2 in feature if stripe related options specified X-Git-Tag: ses5-milestone5~281^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d97fe01cb1f93be13dc9732633f884740a4d526e;p=ceph.git librbd/clone: set RBD_FEATURE_STRIPINGV2 in feature if stripe related options specified Signed-off-by: Dongsheng Yang --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index d0be37f7c110..bf009dfa38c1 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -1487,7 +1487,7 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force, } if (use_p_features) { - c_opts.set(RBD_IMAGE_OPTION_FEATURES, p_features); + features = p_features; } order = p_imctx->order; @@ -1495,6 +1495,12 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force, c_opts.set(RBD_IMAGE_OPTION_ORDER, order); } + if (c_opts.get(RBD_IMAGE_OPTION_STRIPE_UNIT, &stripe_unit) == 0 || + c_opts.get(RBD_IMAGE_OPTION_STRIPE_COUNT, &stripe_count) == 0) { + features |= RBD_FEATURE_STRIPINGV2; + } + + c_opts.set(RBD_IMAGE_OPTION_FEATURES, features); r = create(c_ioctx, c_name, size, c_opts, non_primary_global_image_id, primary_mirror_uuid); if (r < 0) {