]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: Make new EC use non-const iterators
authorAlex Ainscow <aainscow@uk.ibm.com>
Mon, 12 May 2025 17:46:49 +0000 (18:46 +0100)
committerAlex Ainscow <aainscow@uk.ibm.com>
Fri, 13 Jun 2025 14:35:04 +0000 (15:35 +0100)
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
src/osd/ECUtil.h

index f0abbb0cd3ca8e7888c23dc2de364390295d4aef..166bcdb3e3c823277c3b6540d18cd380ada85b86 100644 (file)
@@ -54,7 +54,7 @@ struct bl_split_merge {
 
 using extent_set = interval_set<uint64_t, boost::container::flat_map, false>;
 using extent_map = interval_map<uint64_t, ceph::buffer::list, bl_split_merge,
-                                boost::container::flat_map>;
+                                boost::container::flat_map, true>;
 
 /* Slice iterator.  This looks for contiguous buffers which are common
  * across all shards in the out_set.
@@ -70,8 +70,8 @@ class slice_iterator {
   uint64_t length = std::numeric_limits<uint64_t>::max();
   uint64_t start = std::numeric_limits<uint64_t>::max();
   uint64_t end = std::numeric_limits<uint64_t>::max();
-  shard_id_map<std::pair<extent_map::const_iterator,
-                         bufferlist::const_iterator>> iters;
+  shard_id_map<std::pair<extent_map::iterator,
+                         bufferlist::iterator>> iters;
   shard_id_map<bufferptr> in;
   shard_id_map<bufferptr> out;
   const shard_id_set &out_set;
@@ -975,10 +975,10 @@ public:
   size_t shard_count() { return extent_maps.size(); }
 
 
-  void assert_buffer_contents_equal(shard_extent_map_t other) const {
+  void assert_buffer_contents_equal(shard_extent_map_t other) {
     for (auto &&[shard, emap] : extent_maps) {
       for (auto &&i : emap) {
-        bufferlist bl = i.get_val();
+        bufferlist &bl = i.get_val();
         bufferlist otherbl;
         other.get_buffer(shard, i.get_off(), i.get_len(), otherbl);
         ceph_assert(bl.contents_equal(otherbl));