]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Minor performance improvement in ECUtil.cc
authorAlex Ainscow <aainscow@uk.ibm.com>
Fri, 25 Apr 2025 18:15:34 +0000 (19:15 +0100)
committerAlex Ainscow <aainscow@uk.ibm.com>
Tue, 1 Jul 2025 12:03:30 +0000 (13:03 +0100)
Code changes to prevent create then erase of empty
shard.
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
src/osd/ECUtil.cc

index 1fd5c33c8e1912b081cb4e59b1a2f1186de9564c..5c5d2828be5462bb467d4f1bee9a7d9e14ce5fa8 100644 (file)
@@ -206,12 +206,11 @@ void shard_extent_map_t::erase_after_ro_offset(uint64_t ro_offset) {
                                       ro_to_erase);
   for (auto &&[shard, eset] : ro_to_erase) {
     if (extent_maps.contains(shard)) {
-      extent_maps[shard].erase(eset.range_start(), eset.range_end());
-    }
-
-    // If the result is empty, delete the extent map.
-    if (extent_maps[shard].empty()) {
-      extent_maps.erase(shard);
+      auto &emap = extent_maps.at(shard);
+      emap.erase(eset.range_start(), eset.range_end());
+      if (emap.empty()) {
+        extent_maps.erase(shard);
+      }
     }
   }