]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
erasure-code: make bufferlist contiguous in ErasureCode::encode_prepare
authorIgor Fedotov <igor.fedotov@croit.io>
Mon, 25 Aug 2025 11:36:34 +0000 (14:36 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Mon, 25 Aug 2025 11:36:34 +0000 (14:36 +0300)
Fixes: https://tracker.ceph.com/issues/72710
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
src/erasure-code/ErasureCode.cc

index f3433c430f2cc5446de43e0e96b89005116dfe97..9c4af59078c59ae66720222c3d6ffd33f08cecde 100644 (file)
@@ -247,7 +247,7 @@ int ErasureCode::encode_prepare(const bufferlist &raw,
   for (unsigned int i = 0; i < k - padded_chunks; i++) {
     bufferlist &chunk = encoded[chunk_index(i)];
     chunk.substr_of(prepared, i * blocksize, blocksize);
-    chunk.rebuild_aligned_size_and_memory(blocksize, SIMD_ALIGN);
+    chunk.rebuild_aligned_size_and_memory(blocksize, SIMD_ALIGN, 1);
     ceph_assert(chunk.is_contiguous());
   }
   if (padded_chunks) {
@@ -285,7 +285,7 @@ int ErasureCode::encode_prepare(const bufferlist &raw,
   for (raw_shard_id_t i; i < k - padded_chunks; ++i) {
     bufferlist &chunk = encoded[chunk_index(i)];
     chunk.substr_of(prepared, (int)i * blocksize, blocksize);
-    chunk.rebuild_aligned_size_and_memory(blocksize, SIMD_ALIGN);
+    chunk.rebuild_aligned_size_and_memory(blocksize, SIMD_ALIGN, 1);
     ceph_assert(chunk.is_contiguous());
   }
   if (padded_chunks) {