From: Jason Dillaman Date: Wed, 11 Mar 2015 20:26:14 +0000 (-0400) Subject: cls_rbd_client: add set_features helper method X-Git-Tag: v9.0.0~37^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=71b4c12478106ff48217f1945358940474bd6ecd;p=ceph.git cls_rbd_client: add set_features helper method Signed-off-by: Jason Dillaman --- diff --git a/src/cls/rbd/cls_rbd_client.cc b/src/cls/rbd/cls_rbd_client.cc index d387fa714521..c75d583d62cf 100644 --- a/src/cls/rbd/cls_rbd_client.cc +++ b/src/cls/rbd/cls_rbd_client.cc @@ -154,6 +154,18 @@ namespace librbd { return 0; } + int set_features(librados::IoCtx *ioctx, const std::string &oid, + uint64_t features, uint64_t mask) + { + bufferlist inbl; + ::encode(features, inbl); + ::encode(mask, inbl); + + librados::ObjectWriteOperation op; + op.exec("rbd", "set_features", inbl); + return ioctx->operate(oid, &op); + } + int get_object_prefix(librados::IoCtx *ioctx, const std::string &oid, std::string *object_prefix) { diff --git a/src/cls/rbd/cls_rbd_client.h b/src/cls/rbd/cls_rbd_client.h index 547e152e1e85..9ad513dab7c8 100644 --- a/src/cls/rbd/cls_rbd_client.h +++ b/src/cls/rbd/cls_rbd_client.h @@ -35,6 +35,8 @@ namespace librbd { const std::string &object_prefix); int get_features(librados::IoCtx *ioctx, const std::string &oid, snapid_t snap_id, uint64_t *features); + int set_features(librados::IoCtx *ioctx, const std::string &oid, + uint64_t features, uint64_t mask); int get_object_prefix(librados::IoCtx *ioctx, const std::string &oid, std::string *object_prefix); int get_size(librados::IoCtx *ioctx, const std::string &oid,