]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cls/rbd: use explicitly sized integer in mirror status summary 33828/head
authorJason Dillaman <dillaman@redhat.com>
Mon, 9 Mar 2020 18:20:50 +0000 (14:20 -0400)
committerSage Weil <sage@redhat.com>
Tue, 10 Mar 2020 13:30:23 +0000 (08:30 -0500)
PR 33673 accidentally broke enum encoding but it was originally
thought that it somehow broke endianness encoding of the non-
explicitly sized `int` state counter. Switch to use the explicitly
sized int32_t instead as a cleanup measure.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/cls/rbd/cls_rbd.cc
src/cls/rbd/cls_rbd_client.cc
src/cls/rbd/cls_rbd_client.h
src/librbd/api/Mirror.cc
src/test/cls_rbd/test_cls_rbd.cc

index b6ae25d7c91b0313214d211bfe16ac1d242b5185..6c8dfc61a3d3756f55d5bc5e14bc231a1ae5e2c9 100644 (file)
@@ -5356,7 +5356,7 @@ int image_status_get_summary(
     cls_method_context_t hctx,
     cls::rbd::MirrorPeerDirection mirror_peer_direction,
     const std::set<std::string>& tx_peer_mirror_uuids,
-    std::map<cls::rbd::MirrorImageStatusState, int> *states) {
+    std::map<cls::rbd::MirrorImageStatusState, int32_t> *states) {
   std::set<entity_inst_t> watchers;
   int r = list_watchers(hctx, &watchers);
   if (r < 0) {
@@ -6450,7 +6450,7 @@ int mirror_image_status_list(cls_method_context_t hctx, bufferlist *in,
  * @param std::vector<cls::rbd::MirrorPeer> - optional peers (backwards compatibility)
  *
  * Output:
- * @param std::map<cls::rbd::MirrorImageStatusState, int>: states counts
+ * @param std::map<cls::rbd::MirrorImageStatusState, int32_t>: states counts
  * @returns 0 on success, negative error code on failure
  */
 int mirror_image_status_get_summary(cls_method_context_t hctx, bufferlist *in,
@@ -6483,7 +6483,7 @@ int mirror_image_status_get_summary(cls_method_context_t hctx, bufferlist *in,
     }
   }
 
-  std::map<cls::rbd::MirrorImageStatusState, int> states;
+  std::map<cls::rbd::MirrorImageStatusState, int32_t> states;
   int r = mirror::image_status_get_summary(hctx, mirror_peer_direction,
                                            tx_peer_mirror_uuids, &states);
   if (r < 0) {
index 4ec2d6672424420e9115478480d2a6961d9f48a8..1de9306a682ce5618b5012a86ee0d6a7a4619d22 100644 (file)
@@ -2232,7 +2232,7 @@ int mirror_image_status_list_finish(bufferlist::const_iterator *iter,
 int mirror_image_status_get_summary(
     librados::IoCtx *ioctx,
     const std::vector<cls::rbd::MirrorPeer>& mirror_peer_sites,
-    std::map<cls::rbd::MirrorImageStatusState, int> *states) {
+    std::map<cls::rbd::MirrorImageStatusState, int32_t> *states) {
   librados::ObjectReadOperation op;
   mirror_image_status_get_summary_start(&op, mirror_peer_sites);
 
@@ -2260,7 +2260,7 @@ void mirror_image_status_get_summary_start(
 
 int mirror_image_status_get_summary_finish(
     bufferlist::const_iterator *iter,
-    std::map<cls::rbd::MirrorImageStatusState, int> *states) {
+    std::map<cls::rbd::MirrorImageStatusState, int32_t> *states) {
   try {
     decode(*states, *iter);
   } catch (const buffer::error &err) {
index 55353e0746f9ec60d873980f8cfd1b4f9260a110..23917b91b33c6627eb7d530bfad224e0c45c2c02 100644 (file)
@@ -470,13 +470,13 @@ int mirror_image_status_list_finish(bufferlist::const_iterator *iter,
 int mirror_image_status_get_summary(
     librados::IoCtx *ioctx,
     const std::vector<cls::rbd::MirrorPeer>& mirror_peer_sites,
-    std::map<cls::rbd::MirrorImageStatusState, int> *states);
+    std::map<cls::rbd::MirrorImageStatusState, int32_t> *states);
 void mirror_image_status_get_summary_start(
     librados::ObjectReadOperation *op,
     const std::vector<cls::rbd::MirrorPeer>& mirror_peer_sites);
 int mirror_image_status_get_summary_finish(
     bufferlist::const_iterator *iter,
-    std::map<cls::rbd::MirrorImageStatusState, int> *states);
+    std::map<cls::rbd::MirrorImageStatusState, int32_t> *states);
 int mirror_image_status_remove_down(librados::IoCtx *ioctx);
 void mirror_image_status_remove_down(librados::ObjectWriteOperation *op);
 
index 849aeacfd3d885814eb86b437bb63398e403edda..92a831b098188d63b18929977d1c1e6755b2d248 100644 (file)
@@ -1830,7 +1830,7 @@ int Mirror<I>::image_status_summary(librados::IoCtx& io_ctx,
     return r;
   }
 
-  std::map<cls::rbd::MirrorImageStatusState, int> states_;
+  std::map<cls::rbd::MirrorImageStatusState, int32_t> states_;
   r = cls_client::mirror_image_status_get_summary(&io_ctx, mirror_peers,
                                                   &states_);
   if (r < 0 && r != -ENOENT) {
index ef753b749809be5587d14f4ca5c15ce7a97877db..cb79e064dc404af6f31dbde5e683416b8f82844f 100644 (file)
@@ -1811,7 +1811,7 @@ TEST_F(TestClsRbd, mirror_image_status) {
 
   map<std::string, cls::rbd::MirrorImage> images;
   map<std::string, cls::rbd::MirrorImageStatus> statuses;
-  std::map<cls::rbd::MirrorImageStatusState, int> states;
+  std::map<cls::rbd::MirrorImageStatusState, int32_t> states;
   std::map<std::string, entity_inst_t> instances;
   cls::rbd::MirrorImageStatus read_status;
   entity_inst_t read_instance;