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);
|
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");
|
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 data_offset, data_device_sect, data_device_size, data_len;
|
||||||
uint64_t journal_offset, journal_device_sect, journal_device_size, journal_len;
|
uint64_t journal_offset, journal_device_sect, journal_device_size, journal_len;
|
||||||
|
|
||||||
uint32_t block_order = 0;
|
|
||||||
uint64_t block_count = 0;
|
uint64_t block_count = 0;
|
||||||
uint32_t clean_entry_bitmap_size = 0;
|
uint32_t clean_entry_bitmap_size = 0;
|
||||||
uint32_t clean_entry_size = 0, clean_dyn_size = 0; // for meta_v1/2
|
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)
|
if (ref_it == mvcc_data_refs.end() && free_at_0)
|
||||||
{
|
{
|
||||||
assert(data_alloc->get(location >> dsk->block_order));
|
assert(data_alloc->get(location / dsk->data_block_size));
|
||||||
data_alloc->set(location >> dsk->block_order, false);
|
data_alloc->set(location / dsk->data_block_size, false);
|
||||||
auto & space = inode_space_stats[inode];
|
auto & space = inode_space_stats[inode];
|
||||||
assert(space >= dsk->data_block_size);
|
assert(space >= dsk->data_block_size);
|
||||||
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();
|
uint64_t loc = data_alloc->find_free();
|
||||||
if (loc != UINT64_MAX)
|
if (loc != UINT64_MAX)
|
||||||
{
|
{
|
||||||
loc = loc << dsk->block_order;
|
loc = loc * dsk->data_block_size;
|
||||||
}
|
}
|
||||||
return loc;
|
return loc;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool blockstore_heap_t::is_data_used(uint64_t location)
|
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)
|
void blockstore_heap_t::use_data(inode_t inode, uint64_t location)
|
||||||
{
|
{
|
||||||
assert(!data_alloc->get(location >> dsk->block_order));
|
assert(!data_alloc->get(location / dsk->data_block_size));
|
||||||
data_alloc->set(location >> dsk->block_order, true);
|
data_alloc->set(location / dsk->data_block_size, true);
|
||||||
inode_space_stats[inode] += dsk->data_block_size;
|
inode_space_stats[inode] += dsk->data_block_size;
|
||||||
data_used_space += dsk->data_block_size;
|
data_used_space += dsk->data_block_size;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user