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
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;
++errors;
}
}
- first_key += bytes_per_block * blocks_per_key;
+ first_key += bytes_per_key;
}
// middle keys
if (first_key < last_key) {
++errors;
}
}
- first_key += bytes_per_block * blocks_per_key;
+ first_key += bytes_per_key;
}
}
assert(first_key == last_key);
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) {
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);
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