From: Dongsheng Yang Date: Tue, 21 Jun 2016 09:17:29 +0000 (-0400) Subject: librbd: check the RBD_FEATURE_LAYERING for the features of child image. X-Git-Tag: ses5-milestone5~281^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cfae775889cc7c593633002d07b02172ea107b23;p=ceph.git librbd: check the RBD_FEATURE_LAYERING for the features of child image. Signed-off-by: Dongsheng Yang --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index 4702e8df4c2c..f082e0839f1f 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -1513,6 +1513,11 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force, c_opts.set(RBD_IMAGE_OPTION_ORDER, order); } + if ((features & RBD_FEATURE_LAYERING) != RBD_FEATURE_LAYERING) { + lderr(cct) << "cloning image must support layering" << dendl; + return -ENOSYS; + } + 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);