]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: make bytes_per_key a global member 9840/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Tue, 21 Jun 2016 07:38:36 +0000 (15:38 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Tue, 21 Jun 2016 13:44:15 +0000 (21:44 +0800)
So we don't have to figure it out everywhere.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/bluestore/BitmapFreelistManager.cc
src/os/bluestore/BitmapFreelistManager.h

index 3cc3f0b2a1a544bbafcfb436e7cabb1e98d5d355..44afce6ca696ee4e49ca66d599ad5c41e0c624da 100644 (file)
@@ -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);
index fe7516a8dd05148685f2ddb3cb32d86983943f03..b351dec68c132c62358ec38e022805820320114a 100644 (file)
@@ -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