From: Alex Ainscow Date: Fri, 25 Apr 2025 18:15:34 +0000 (+0100) Subject: osd: Minor performance improvement in ECUtil.cc X-Git-Tag: v20.1.0~68^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f6eb155651035eb41c23a646d2853bebb6f2d99d;p=ceph.git osd: Minor performance improvement in ECUtil.cc Code changes to prevent create then erase of empty shard. Signed-off-by: Alex Ainscow (cherry picked from commit c2d6414f659b123fa7060442bff7a90a7ceeb7c0) --- diff --git a/src/osd/ECUtil.cc b/src/osd/ECUtil.cc index 1fd5c33c8e19..5c5d2828be54 100644 --- a/src/osd/ECUtil.cc +++ b/src/osd/ECUtil.cc @@ -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); + } } }