From: Sage Weil Date: Fri, 3 Jun 2016 21:20:06 +0000 (-0400) Subject: os/bluestore: set csum_order via WriteContext X-Git-Tag: v11.0.0~160^2~14 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0a4e8b266f5aad2c168067eb87058d88a92962fe;p=ceph.git os/bluestore: set csum_order via WriteContext Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index e90aed5448f6..b2fd443c483c 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -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; diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 6c2dc71ec13a..654282d0809c 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -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 lex_old; ///< must deref blobs