]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: set csum_order via WriteContext
authorSage Weil <sage@redhat.com>
Fri, 3 Jun 2016 21:20:06 +0000 (17:20 -0400)
committerSage Weil <sage@redhat.com>
Wed, 15 Jun 2016 19:25:29 +0000 (15:25 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index e90aed5448f625f6fc8465c8f4b67fe9b8801483..b2fd443c483cf63839b518a7f46aa4766cd4557d 100644 (file)
@@ -5918,6 +5918,7 @@ int BlueStore::_do_alloc_write(
     bufferlist *l = &wi.bl;
     uint64_t final_length = b->length;
     uint64_t csum_length = b->length;
+    size_t csum_order = wctx->csum_order;
     bufferlist compressed_bl;
     CompressorRef c;
     if (b_off == 0 &&
@@ -5979,7 +5980,7 @@ int BlueStore::_do_alloc_write(
 
     // checksum
     if (csum_type) {
-      b->init_csum(csum_type, 12, csum_length); // FIXME adjust b size
+      b->init_csum(csum_type, csum_order, csum_length);
       b->calc_csum(b_off, *l);
     }
 
@@ -6073,6 +6074,7 @@ int BlueStore::_do_write(
     dout(20) << __func__ << " will do buffered write" << dendl;
     wctx.buffered = true;
   }
+  wctx.csum_order = block_size_order;
 
   // compression parameters
   unsigned alloc_hints = o->onode.alloc_hint_flags;
index 6c2dc71ec13afacec89a1135e5b07bd690d8cc23..654282d0809c39eb653160b880b0d90d5da0ed5c 100644 (file)
@@ -1260,6 +1260,7 @@ private:
     bool buffered = false;       ///< buffered write
     bool compress = false;       ///< compressed write
     uint64_t comp_blob_size = 0; ///< target compressed blob size
+    unsigned csum_order = 0;     ///< target checksum chunk order
 
     vector<bluestore_lextent_t> lex_old;       ///< must deref blobs