diff --git a/src/blockstore/blockstore_disk.cpp b/src/blockstore/blockstore_disk.cpp index 461292a1..70d0fad4 100644 --- a/src/blockstore/blockstore_disk.cpp +++ b/src/blockstore/blockstore_disk.cpp @@ -118,7 +118,7 @@ void blockstore_disk_t::parse_config(std::map & 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"); } diff --git a/src/blockstore/blockstore_disk.h b/src/blockstore/blockstore_disk.h index e90a2cfa..b7c52c47 100644 --- a/src/blockstore/blockstore_disk.h +++ b/src/blockstore/blockstore_disk.h @@ -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 diff --git a/src/blockstore/blockstore_heap.cpp b/src/blockstore/blockstore_heap.cpp index 035af44a..0b1e4cbe 100644 --- a/src/blockstore/blockstore_heap.cpp +++ b/src/blockstore/blockstore_heap.cpp @@ -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; }