]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cls_rbd_client: add set_features helper method
authorJason Dillaman <dillaman@redhat.com>
Wed, 11 Mar 2015 20:26:14 +0000 (16:26 -0400)
committerJason Dillaman <dillaman@redhat.com>
Mon, 6 Apr 2015 17:14:34 +0000 (13:14 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/cls/rbd/cls_rbd_client.cc
src/cls/rbd/cls_rbd_client.h

index d387fa714521daa25b488cbd703fd575bb2d8787..c75d583d62cf894dd0614cba488c64ac16ecf17d 100644 (file)
@@ -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)
     {
index 547e152e1e853aa42d933f209a109372b4a434ae..9ad513dab7c833a33f3a823e369b5f3f754f6f2a 100644 (file)
@@ -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,