]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/bluestore_types: bluestore_blob_t: varint encode csum_data length
authorSage Weil <sage@redhat.com>
Wed, 14 Dec 2016 20:13:26 +0000 (15:13 -0500)
committerSage Weil <sage@redhat.com>
Wed, 14 Dec 2016 20:13:26 +0000 (15:13 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/bluestore_types.h

index 571448da0eba90ebf63508278851acf4a70b6c36..fa9c7b39109fd6ba54877cec10487d0ba0545b27 100644 (file)
@@ -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;