Skip to content

Commit

Permalink
Merge pull request #37168 from ifed01/wip-ifed-fix-compress-csum
Browse files Browse the repository at this point in the history
os/bluestore: attach csum for compressed blobs

Reviewed-by: Adam Kupczyk <akucpzyk@redhat.com>
  • Loading branch information
tchaikov committed Oct 14, 2020
2 parents afd232a + 53346d0 commit b43f26f
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/os/bluestore/BlueStore.cc
Expand Up @@ -13636,12 +13636,23 @@ int BlueStore::_do_alloc_write(
if (wi.compressed) {
final_length = wi.compressed_bl.length();
csum_length = final_length;
unsigned csum_order = ctz(csum_length);
l = &wi.compressed_bl;
dblob.set_compressed(wi.blob_length, wi.compressed_len);
if (csum != Checksummer::CSUM_NONE) {
dout(20) << __func__ << " initialize csum setting for compressed blob " << *b
<< " csum_type " << Checksummer::get_csum_type_string(csum)
<< " csum_order " << csum_order
<< " csum_length 0x" << std::hex << csum_length
<< " blob_length 0x" << wi.blob_length
<< " compressed_length 0x" << wi.compressed_len << std::dec
<< dendl;
dblob.init_csum(csum, csum_order, csum_length);
}
} else if (wi.new_blob) {
unsigned csum_order;
// initialize newly created blob only
ceph_assert(dblob.is_mutable());
unsigned csum_order;
if (l->length() != wi.blob_length) {
// hrm, maybe we could do better here, but let's not bother.
dout(20) << __func__ << " forcing csum_order to block_size_order "
Expand Down

0 comments on commit b43f26f

Please sign in to comment.