Remove block_order parameter
This commit is contained in:
@@ -118,7 +118,7 @@ void blockstore_disk_t::parse_config(std::map<std::string, std::string> & config
|
||||
{
|
||||
data_block_size = (1 << DEFAULT_DATA_BLOCK_ORDER);
|
||||
}
|
||||
if ((block_order = is_power_of_two(data_block_size)) >= 64 || data_block_size < MIN_DATA_BLOCK_SIZE || data_block_size >= MAX_DATA_BLOCK_SIZE)
|
||||
if (is_power_of_two(data_block_size) >= 64 || data_block_size < MIN_DATA_BLOCK_SIZE || data_block_size >= MAX_DATA_BLOCK_SIZE)
|
||||
{
|
||||
throw std::runtime_error("Bad block size");
|
||||
}
|
||||
|
||||
@@ -65,7 +65,6 @@ struct blockstore_disk_t
|
||||
uint64_t data_offset, data_device_sect, data_device_size, data_len;
|
||||
uint64_t journal_offset, journal_device_sect, journal_device_size, journal_len;
|
||||
|
||||
uint32_t block_order = 0;
|
||||
uint64_t block_count = 0;
|
||||
uint32_t clean_entry_bitmap_size = 0;
|
||||
uint32_t clean_entry_size = 0, clean_dyn_size = 0; // for meta_v1/2
|
||||
|
||||
@@ -1682,8 +1682,8 @@ void blockstore_heap_t::deref_data(uint64_t inode, uint64_t location, bool free_
|
||||
}
|
||||
if (ref_it == mvcc_data_refs.end() && free_at_0)
|
||||
{
|
||||
assert(data_alloc->get(location >> dsk->block_order));
|
||||
data_alloc->set(location >> dsk->block_order, false);
|
||||
assert(data_alloc->get(location / dsk->data_block_size));
|
||||
data_alloc->set(location / dsk->data_block_size, false);
|
||||
auto & space = inode_space_stats[inode];
|
||||
assert(space >= dsk->data_block_size);
|
||||
space -= dsk->data_block_size;
|
||||
@@ -1895,20 +1895,20 @@ uint64_t blockstore_heap_t::find_free_data()
|
||||
uint64_t loc = data_alloc->find_free();
|
||||
if (loc != UINT64_MAX)
|
||||
{
|
||||
loc = loc << dsk->block_order;
|
||||
loc = loc * dsk->data_block_size;
|
||||
}
|
||||
return loc;
|
||||
}
|
||||
|
||||
bool blockstore_heap_t::is_data_used(uint64_t location)
|
||||
{
|
||||
return data_alloc->get(location >> dsk->block_order);
|
||||
return data_alloc->get(location / dsk->data_block_size);
|
||||
}
|
||||
|
||||
void blockstore_heap_t::use_data(inode_t inode, uint64_t location)
|
||||
{
|
||||
assert(!data_alloc->get(location >> dsk->block_order));
|
||||
data_alloc->set(location >> dsk->block_order, true);
|
||||
assert(!data_alloc->get(location / dsk->data_block_size));
|
||||
data_alloc->set(location / dsk->data_block_size, true);
|
||||
inode_space_stats[inode] += dsk->data_block_size;
|
||||
data_used_space += dsk->data_block_size;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user