From d4e4e8b26db1a57d421ede0932049e1c0744049d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 14 Dec 2016 15:13:26 -0500 Subject: [PATCH] os/bluestore/bluestore_types: bluestore_blob_t: varint encode csum_data length Signed-off-by: Sage Weil --- src/os/bluestore/bluestore_types.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/os/bluestore/bluestore_types.h b/src/os/bluestore/bluestore_types.h index 571448da0eba9..fa9c7b39109fd 100644 --- a/src/os/bluestore/bluestore_types.h +++ b/src/os/bluestore/bluestore_types.h @@ -306,7 +306,8 @@ struct bluestore_blob_t { denc_varint_lowz(compressed_length, p); denc(csum_type, p); denc(csum_chunk_order, p); - denc(csum_data, p); + denc_varint(csum_data.length(), p); + p += csum_data.length(); p += sizeof(unsigned long long); } @@ -324,7 +325,9 @@ struct bluestore_blob_t { if (has_csum()) { denc(csum_type, p); denc(csum_chunk_order, p); - denc(csum_data, p); + denc_varint(csum_data.length(), p); + memcpy(p.get_pos_add(csum_data.length()), csum_data.c_str(), + csum_data.length()); } if (has_unused()) { denc(unused_uint_t(unused.to_ullong()), p); @@ -345,7 +348,9 @@ struct bluestore_blob_t { if (has_csum()) { denc(csum_type, p); denc(csum_chunk_order, p); - denc(csum_data, p); + int len; + denc_varint(len, p); + csum_data = p.get_ptr(len); } if (has_unused()) { unused_uint_t val; -- 2.39.5