[thin] fix duplicated counting of mapped blocks in restore emitter

This commit is contained in:
Ming-Hung Tsai 2016-08-10 23:40:48 +08:00
parent 702a38f438
commit 6863db6f86
5 changed files with 8 additions and 7 deletions

View File

@ -322,7 +322,7 @@ namespace persistent_data {
maybe_pair lookup_le(key const &key) const; maybe_pair lookup_le(key const &key) const;
maybe_pair lookup_ge(key const &key) const; maybe_pair lookup_ge(key const &key) const;
void insert(key const &key, typename ValueTraits::value_type const &value); bool insert(key const &key, typename ValueTraits::value_type const &value);
void remove(key const &key); void remove(key const &key);
void set_root(block_address root); void set_root(block_address root);

View File

@ -498,7 +498,7 @@ namespace persistent_data {
} }
template <unsigned Levels, typename ValueTraits> template <unsigned Levels, typename ValueTraits>
void bool
btree<Levels, ValueTraits>:: btree<Levels, ValueTraits>::
insert(key const &key, insert(key const &key,
typename ValueTraits::value_type const &value) typename ValueTraits::value_type const &value)
@ -531,6 +531,8 @@ namespace persistent_data {
n.set_value(index, value); n.set_value(index, value);
root_ = spine.get_root(); root_ = spine.get_root();
return need_insert;
} }
template <unsigned Levels, typename ValueTraits> template <unsigned Levels, typename ValueTraits>

View File

@ -136,10 +136,9 @@ namespace {
mapping_tree_detail::block_time bt; mapping_tree_detail::block_time bt;
bt.block_ = data_block; bt.block_ = data_block;
bt.time_ = time; bt.time_ = time;
current_mapping_->insert(key, bt); current_device_details_.mapped_blocks_ +=
static_cast<uint64_t>(current_mapping_->insert(key, bt));
md_->data_sm_->inc(data_block); md_->data_sm_->inc(data_block);
current_device_details_.mapped_blocks_ += 1;
} }
private: private:

View File

@ -50,7 +50,7 @@ thin::lookup(block_address thin_block)
return pool_->md_->mappings_->lookup(key); return pool_->md_->mappings_->lookup(key);
} }
void bool
thin::insert(block_address thin_block, block_address data_block) thin::insert(block_address thin_block, block_address data_block)
{ {
uint64_t key[2] = {dev_, thin_block}; uint64_t key[2] = {dev_, thin_block};

View File

@ -39,7 +39,7 @@ namespace thin_provisioning {
thin_dev_t get_dev_t() const; thin_dev_t get_dev_t() const;
maybe_address lookup(block_address thin_block); maybe_address lookup(block_address thin_block);
void insert(block_address thin_block, block_address data_block); bool insert(block_address thin_block, block_address data_block);
void remove(block_address thin_block); void remove(block_address thin_block);
void set_snapshot_time(uint32_t time); void set_snapshot_time(uint32_t time);