From: Jason Dillaman Date: Mon, 9 Mar 2020 18:20:50 +0000 (-0400) Subject: cls/rbd: use explicitly sized integer in mirror status summary X-Git-Tag: v16.0.0~41^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f6caf6d75ab184a39db7aca8745d4117377ef187;p=ceph.git cls/rbd: use explicitly sized integer in mirror status summary 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 --- diff --git a/src/cls/rbd/cls_rbd.cc b/src/cls/rbd/cls_rbd.cc index b6ae25d7c91b..6c8dfc61a3d3 100644 --- a/src/cls/rbd/cls_rbd.cc +++ b/src/cls/rbd/cls_rbd.cc @@ -5356,7 +5356,7 @@ int image_status_get_summary( cls_method_context_t hctx, cls::rbd::MirrorPeerDirection mirror_peer_direction, const std::set& tx_peer_mirror_uuids, - std::map *states) { + std::map *states) { std::set 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 - optional peers (backwards compatibility) * * Output: - * @param std::map: states counts + * @param std::map: 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 states; + std::map states; int r = mirror::image_status_get_summary(hctx, mirror_peer_direction, tx_peer_mirror_uuids, &states); if (r < 0) { diff --git a/src/cls/rbd/cls_rbd_client.cc b/src/cls/rbd/cls_rbd_client.cc index 4ec2d6672424..1de9306a682c 100644 --- a/src/cls/rbd/cls_rbd_client.cc +++ b/src/cls/rbd/cls_rbd_client.cc @@ -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& mirror_peer_sites, - std::map *states) { + std::map *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 *states) { + std::map *states) { try { decode(*states, *iter); } catch (const buffer::error &err) { diff --git a/src/cls/rbd/cls_rbd_client.h b/src/cls/rbd/cls_rbd_client.h index 55353e0746f9..23917b91b33c 100644 --- a/src/cls/rbd/cls_rbd_client.h +++ b/src/cls/rbd/cls_rbd_client.h @@ -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& mirror_peer_sites, - std::map *states); + std::map *states); void mirror_image_status_get_summary_start( librados::ObjectReadOperation *op, const std::vector& mirror_peer_sites); int mirror_image_status_get_summary_finish( bufferlist::const_iterator *iter, - std::map *states); + std::map *states); int mirror_image_status_remove_down(librados::IoCtx *ioctx); void mirror_image_status_remove_down(librados::ObjectWriteOperation *op); diff --git a/src/librbd/api/Mirror.cc b/src/librbd/api/Mirror.cc index 849aeacfd3d8..92a831b09818 100644 --- a/src/librbd/api/Mirror.cc +++ b/src/librbd/api/Mirror.cc @@ -1830,7 +1830,7 @@ int Mirror::image_status_summary(librados::IoCtx& io_ctx, return r; } - std::map states_; + std::map states_; r = cls_client::mirror_image_status_get_summary(&io_ctx, mirror_peers, &states_); if (r < 0 && r != -ENOENT) { diff --git a/src/test/cls_rbd/test_cls_rbd.cc b/src/test/cls_rbd/test_cls_rbd.cc index ef753b749809..cb79e064dc40 100644 --- a/src/test/cls_rbd/test_cls_rbd.cc +++ b/src/test/cls_rbd/test_cls_rbd.cc @@ -1811,7 +1811,7 @@ TEST_F(TestClsRbd, mirror_image_status) { map images; map statuses; - std::map states; + std::map states; std::map instances; cls::rbd::MirrorImageStatus read_status; entity_inst_t read_instance;