From: Jason Dillaman Date: Wed, 5 Oct 2016 02:48:16 +0000 (-0400) Subject: librbd: new RBD_FEATURE_DATA_POOL feature bit X-Git-Tag: v11.1.0~710^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c5f22900474e0eed88910341de57e17e1cc154f0;p=ceph.git librbd: new RBD_FEATURE_DATA_POOL feature bit Signed-off-by: Jason Dillaman --- diff --git a/src/include/rbd/features.h b/src/include/rbd/features.h index 3e3509d4691..15e0d185457 100644 --- a/src/include/rbd/features.h +++ b/src/include/rbd/features.h @@ -1,18 +1,20 @@ #ifndef CEPH_RBD_FEATURES_H #define CEPH_RBD_FEATURES_H -#define RBD_FEATURE_LAYERING (1<<0) -#define RBD_FEATURE_STRIPINGV2 (1<<1) -#define RBD_FEATURE_EXCLUSIVE_LOCK (1<<2) -#define RBD_FEATURE_OBJECT_MAP (1<<3) -#define RBD_FEATURE_FAST_DIFF (1<<4) -#define RBD_FEATURE_DEEP_FLATTEN (1<<5) -#define RBD_FEATURE_JOURNALING (1<<6) +#define RBD_FEATURE_LAYERING (1ULL<<0) +#define RBD_FEATURE_STRIPINGV2 (1ULL<<1) +#define RBD_FEATURE_EXCLUSIVE_LOCK (1ULL<<2) +#define RBD_FEATURE_OBJECT_MAP (1ULL<<3) +#define RBD_FEATURE_FAST_DIFF (1ULL<<4) +#define RBD_FEATURE_DEEP_FLATTEN (1ULL<<5) +#define RBD_FEATURE_JOURNALING (1ULL<<6) +#define RBD_FEATURE_DATA_POOL (1ULL<<7) /// features that make an image inaccessible for read or write by /// clients that don't understand them -#define RBD_FEATURES_INCOMPATIBLE (RBD_FEATURE_LAYERING | \ - RBD_FEATURE_STRIPINGV2) +#define RBD_FEATURES_INCOMPATIBLE (RBD_FEATURE_LAYERING | \ + RBD_FEATURE_STRIPINGV2 | \ + RBD_FEATURE_DATA_POOL) /// features that make an image unwritable by clients that don't understand them #define RBD_FEATURES_RW_INCOMPATIBLE (RBD_FEATURES_INCOMPATIBLE | \ @@ -28,7 +30,8 @@ RBD_FEATURE_OBJECT_MAP | \ RBD_FEATURE_FAST_DIFF | \ RBD_FEATURE_DEEP_FLATTEN | \ - RBD_FEATURE_JOURNALING) + RBD_FEATURE_JOURNALING | \ + RBD_FEATURE_DATA_POOL) /// features that may be dynamically enabled or disabled #define RBD_FEATURES_MUTABLE (RBD_FEATURE_EXCLUSIVE_LOCK | \ diff --git a/src/librbd/image/CreateRequest.cc b/src/librbd/image/CreateRequest.cc index 7a9daaf30fc..4a1378cdc08 100644 --- a/src/librbd/image/CreateRequest.cc +++ b/src/librbd/image/CreateRequest.cc @@ -98,6 +98,9 @@ CreateRequest::CreateRequest(IoCtx &ioctx, std::string &imgname, std::string } m_force_non_primary = !non_primary_global_image_id.empty(); + + // TODO + m_features &= ~RBD_FEATURE_DATA_POOL; } template @@ -250,7 +253,8 @@ void CreateRequest::create_image() { librados::ObjectWriteOperation op; op.create(true); - cls_client::create_image(&op, m_size, m_order, m_features, oss.str()); + cls_client::create_image(&op, m_size, m_order, m_features, oss.str(), + /* TODO */-1); using klass = CreateRequest; librados::AioCompletion *comp =