From: Sage Weil Date: Wed, 14 Dec 2016 20:13:26 +0000 (-0500) Subject: os/bluestore/bluestore_types: bluestore_blob_t: varint encode csum_data length X-Git-Tag: v11.1.1~54^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d4e4e8b26db1a57d421ede0932049e1c0744049d;p=ceph.git os/bluestore/bluestore_types: bluestore_blob_t: varint encode csum_data length Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/bluestore_types.h b/src/os/bluestore/bluestore_types.h index 571448da0eb..fa9c7b39109 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;