From: Yingxin Cheng Date: Wed, 2 Jun 2021 08:25:05 +0000 (+0800) Subject: crimson/onode-staged-tree: remove hard-coded node_stage_t::EXTENT_SIZE X-Git-Tag: v17.1.0~1674^2~15 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7e24c625ed20d9aac0da3f96a890fc5bf458c241;p=ceph-ci.git crimson/onode-staged-tree: remove hard-coded node_stage_t::EXTENT_SIZE Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_accessor.h b/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_accessor.h index ab1b1880f35..1bb1aeaa150 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_accessor.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_accessor.h @@ -319,6 +319,7 @@ class NodeExtentAccessorT { const node_stage_t& read() const { return node_stage; } laddr_t get_laddr() const { return extent->get_laddr(); } + extent_len_t get_length() const { return extent->get_length(); } nextent_state_t get_state() const { assert(!is_retired()); // we cannot rely on the underlying extent state because diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h index ca54eb34764..4d74b8beab3 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h @@ -304,7 +304,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { if (!is_keys_empty()) { STAGE_T::get_stats(node_stage, stats, index_key); } - stats.size_persistent = node_stage_t::EXTENT_SIZE; + stats.size_persistent = extent.get_length(); stats.size_filled = filled_size(); if constexpr (NODE_TYPE == node_type_t::INTERNAL) { if (is_level_tail()) { @@ -877,7 +877,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { std::ostringstream sos; sos << "Node" << NODE_TYPE << FIELD_TYPE << "@0x" << std::hex << extent.get_laddr() - << "+" << node_stage_t::EXTENT_SIZE << std::dec + << "+" << extent.get_length() << std::dec << "Lv" << (unsigned)level() << (is_level_tail() ? "$" : ""); name = sos.str(); diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h index d0786ee48fe..2c55e584770 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h @@ -30,8 +30,6 @@ class node_extent_t { using num_keys_t = typename FieldType::num_keys_t; static constexpr node_type_t NODE_TYPE = _NODE_TYPE; static constexpr field_type_t FIELD_TYPE = FieldType::FIELD_TYPE; - static constexpr node_offset_t EXTENT_SIZE = - (FieldType::SIZE + DISK_BLOCK_SIZE - 1u) / DISK_BLOCK_SIZE * DISK_BLOCK_SIZE; // TODO: remove node_extent_t() = default;