From: Zhang Song Date: Wed, 3 Apr 2024 08:27:50 +0000 (+0800) Subject: crimson/os/seastore: introduce extent_ref_count_t X-Git-Tag: v20.0.0~2208^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=bbee55a105ffb31d01c9a024325b8eb06d8f56e7;p=ceph.git crimson/os/seastore: introduce extent_ref_count_t Signed-off-by: Zhang Song --- diff --git a/src/crimson/os/seastore/lba_manager.h b/src/crimson/os/seastore/lba_manager.h index 0c02e1bd61bb2..df873a97a16ac 100644 --- a/src/crimson/os/seastore/lba_manager.h +++ b/src/crimson/os/seastore/lba_manager.h @@ -103,7 +103,7 @@ public: extent_len_t len) = 0; struct ref_update_result_t { - unsigned refcount = 0; + extent_ref_count_t refcount = 0; pladdr_t addr; extent_len_t length = 0; }; diff --git a/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h b/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h index ffce2c1b5e684..fc5d4e98fd9fe 100644 --- a/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h +++ b/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h @@ -35,14 +35,14 @@ struct lba_map_val_t { extent_len_t len = 0; ///< length of mapping pladdr_t pladdr; ///< physical addr of mapping or // laddr of a physical lba mapping(see btree_lba_manager.h) - uint32_t refcount = 0; ///< refcount + extent_ref_count_t refcount = 0; ///< refcount uint32_t checksum = 0; ///< checksum of original block written at paddr (TODO) lba_map_val_t() = default; lba_map_val_t( extent_len_t len, pladdr_t pladdr, - uint32_t refcount, + extent_ref_count_t refcount, uint32_t checksum) : len(len), pladdr(pladdr), refcount(refcount), checksum(checksum) {} bool operator==(const lba_map_val_t&) const = default; @@ -121,7 +121,7 @@ constexpr size_t LEAF_NODE_CAPACITY = 140; struct lba_map_val_le_t { extent_len_le_t len = init_extent_len_le(0); pladdr_le_t pladdr; - ceph_le32 refcount{0}; + extent_ref_count_le_t refcount{0}; ceph_le32 checksum{0}; lba_map_val_le_t() = default; diff --git a/src/crimson/os/seastore/seastore_types.h b/src/crimson/os/seastore/seastore_types.h index f0e40fed082e2..e670a43c88efb 100644 --- a/src/crimson/os/seastore/seastore_types.h +++ b/src/crimson/os/seastore/seastore_types.h @@ -1142,6 +1142,11 @@ inline extent_len_le_t init_extent_len_le(extent_len_t len) { return ceph_le32(len); } +using extent_ref_count_t = uint32_t; +constexpr extent_ref_count_t EXTENT_DEFAULT_REF_COUNT = 1; + +using extent_ref_count_le_t = ceph_le32; + struct laddr_list_t : std::list> { template laddr_list_t(T&&... args) diff --git a/src/crimson/os/seastore/transaction_manager.h b/src/crimson/os/seastore/transaction_manager.h index e4b4707b249c4..371e7f96c4253 100644 --- a/src/crimson/os/seastore/transaction_manager.h +++ b/src/crimson/os/seastore/transaction_manager.h @@ -233,7 +233,7 @@ public: using ref_iertr = LBAManager::ref_iertr; - using ref_ret = ref_iertr::future; + using ref_ret = ref_iertr::future; #ifdef UNIT_TESTS_BUILT /// Add refcount for ref