]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: Remove lldiv from ECUtil
authorAlex Ainscow <aainscow@uk.ibm.com>
Thu, 5 Feb 2026 15:00:57 +0000 (15:00 +0000)
committerAlex Ainscow <aainscow@uk.ibm.com>
Fri, 6 Feb 2026 10:31:55 +0000 (10:31 +0000)
lldiv is not faster and is less clear, so refactor the code to be more readable
and faster!

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
src/osd/ECUtil.h

index 342101829a674347e38f6c9273ebb28f9c90e65b..60ca26b44d6bfbe3d90370fabeaee59d80eff588 100644 (file)
@@ -768,8 +768,9 @@ public:
 
   uint64_t shard_offset_to_ro_offset(shard_id_t shard, uint64_t offset) const {
     raw_shard_id_t raw_shard = get_raw_shard(shard);
-    auto result = std::lldiv(offset, chunk_size);
-    return result.quot * stripe_width + (int)raw_shard * chunk_size + result.rem;
+    uint64_t stripes = (offset / chunk_size);
+    uint64_t chunk_offset = (offset % chunk_size);
+    return stripes * stripe_width + (int)raw_shard * chunk_size + chunk_offset;
   }
 
   std::pair<uint64_t, uint64_t> chunk_aligned_ro_range_to_shard_ro_range(