From: xie xingguo Date: Tue, 21 Jun 2016 07:38:36 +0000 (+0800) Subject: os/bluestore: make bytes_per_key a global member X-Git-Tag: v11.0.0~96^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=401af35fbd54c5574a3aa0957be1f9fbab96c28b;p=ceph-ci.git os/bluestore: make bytes_per_key a global member So we don't have to figure it out everywhere. Signed-off-by: xie xingguo --- diff --git a/src/os/bluestore/BitmapFreelistManager.cc b/src/os/bluestore/BitmapFreelistManager.cc index 3cc3f0b2a1a..44afce6ca69 100644 --- a/src/os/bluestore/BitmapFreelistManager.cc +++ b/src/os/bluestore/BitmapFreelistManager.cc @@ -160,7 +160,7 @@ void BitmapFreelistManager::_init_misc() block_mask = ~(bytes_per_block - 1); - uint64_t bytes_per_key = bytes_per_block * blocks_per_key; + bytes_per_key = bytes_per_block * blocks_per_key; key_mask = ~(bytes_per_key - 1); dout(10) << __func__ << std::hex << " bytes_per_key 0x" << bytes_per_key << ", key_mask 0x" << key_mask << std::dec @@ -251,14 +251,14 @@ bool BitmapFreelistManager::enumerate_next(uint64_t *offset, uint64_t *length) enumerate_p->next(); enumerate_bl.clear(); if (!enumerate_p->valid()) { - enumerate_offset += bytes_per_block * blocks_per_key; + enumerate_offset += bytes_per_key; enumerate_bl_pos = 0; *offset = get_offset(enumerate_offset, enumerate_bl_pos); break; } string k = enumerate_p->key(); const char *p = k.c_str(); - uint64_t next = enumerate_offset + bytes_per_block * blocks_per_key; + uint64_t next = enumerate_offset + bytes_per_key; _key_decode_u64(p, &enumerate_offset); enumerate_bl = enumerate_p->value(); enumerate_bl_pos = 0; @@ -384,7 +384,7 @@ void BitmapFreelistManager::_verify_range(uint64_t offset, uint64_t length, ++errors; } } - first_key += bytes_per_block * blocks_per_key; + first_key += bytes_per_key; } // middle keys if (first_key < last_key) { @@ -411,7 +411,7 @@ void BitmapFreelistManager::_verify_range(uint64_t offset, uint64_t length, ++errors; } } - first_key += bytes_per_block * blocks_per_key; + first_key += bytes_per_key; } } assert(first_key == last_key); @@ -516,7 +516,7 @@ void BitmapFreelistManager::_xor( bl.hexdump(*_dout, false); *_dout << dendl; txn->merge(bitmap_prefix, k, bl); - first_key += bytes_per_block * blocks_per_key; + first_key += bytes_per_key; } // middle keys if (first_key < last_key) { @@ -528,7 +528,7 @@ void BitmapFreelistManager::_xor( all_set_bl.hexdump(*_dout, false); *_dout << dendl; txn->merge(bitmap_prefix, k, all_set_bl); - first_key += bytes_per_block * blocks_per_key; + first_key += bytes_per_key; } } assert(first_key == last_key); diff --git a/src/os/bluestore/BitmapFreelistManager.h b/src/os/bluestore/BitmapFreelistManager.h index fe7516a8dd0..b351dec68c1 100644 --- a/src/os/bluestore/BitmapFreelistManager.h +++ b/src/os/bluestore/BitmapFreelistManager.h @@ -21,6 +21,7 @@ class BitmapFreelistManager : public FreelistManager { uint64_t size; ///< size of device (bytes) uint64_t bytes_per_block; ///< bytes per block (bdev_block_size) uint64_t blocks_per_key; ///< blocks (bits) per key/value pair + uint64_t bytes_per_key; ///< bytes per key/value pair uint64_t blocks; ///< size of device (blocks, size rounded up) uint64_t block_mask; ///< mask to convert byte offset to block offset