]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cls_rbd_client: add object_map_save helper method
authorJason Dillaman <dillaman@redhat.com>
Fri, 10 Apr 2015 17:59:28 +0000 (13:59 -0400)
committerJason Dillaman <dillaman@redhat.com>
Fri, 10 Apr 2015 19:46:22 +0000 (15:46 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/cls/rbd/cls_rbd_client.cc
src/cls/rbd/cls_rbd_client.h

index c75d583d62cf894dd0614cba488c64ac16ecf17d..12a2597eeccdbf23375874e60378f20128f10fdc 100644 (file)
@@ -731,6 +731,17 @@ namespace librbd {
       return 0;
     }
 
+    void object_map_save(librados::ObjectWriteOperation *rados_op,
+                         const ceph::BitVector<2> &object_map)
+    {
+      ceph::BitVector<2> object_map_copy(object_map);
+      object_map_copy.set_crc_enabled(false);
+
+      bufferlist in;
+      ::encode(object_map_copy, in);
+      rados_op->exec("rbd", "object_map_save", in);
+    }
+
     void object_map_resize(librados::ObjectWriteOperation *rados_op,
                            uint64_t object_count, uint8_t default_state)
     {
index 9ad513dab7c833a33f3a823e369b5f3f754f6f2a..551582f0d24dd1a7daf82ba9a1e07f343ca16373 100644 (file)
@@ -122,6 +122,8 @@ namespace librbd {
     // operations on the rbd_object_map.$image_id object
     int object_map_load(librados::IoCtx *ioctx, const std::string &oid,
                        ceph::BitVector<2> *object_map);
+    void object_map_save(librados::ObjectWriteOperation *rados_op,
+                         const ceph::BitVector<2> &object_map);
     void object_map_resize(librados::ObjectWriteOperation *rados_op,
                           uint64_t object_count, uint8_t default_state);
     void object_map_update(librados::ObjectWriteOperation *rados_op,