From d97fe01cb1f93be13dc9732633f884740a4d526e Mon Sep 17 00:00:00 2001 From: Dongsheng Yang Date: Thu, 2 Jun 2016 04:32:15 -0400 Subject: [PATCH] librbd/clone: set RBD_FEATURE_STRIPINGV2 in feature if stripe related options specified Signed-off-by: Dongsheng Yang --- src/librbd/internal.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index d0be37f7c11..bf009dfa38c 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) { -- 2.47.3