]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: introduce extent_ref_count_t
authorZhang Song <zhangsong02@qianxin.com>
Wed, 3 Apr 2024 08:27:50 +0000 (16:27 +0800)
committerZhang Song <zhangsong02@qianxin.com>
Wed, 3 Apr 2024 09:36:20 +0000 (17:36 +0800)
Signed-off-by: Zhang Song <zhangsong02@qianxin.com>
src/crimson/os/seastore/lba_manager.h
src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h
src/crimson/os/seastore/seastore_types.h
src/crimson/os/seastore/transaction_manager.h

index 0c02e1bd61bb29f44f6a1ecf49c61a96128b5b9f..df873a97a16ac980ec6dc7cf17008e80bb6a3fca 100644 (file)
@@ -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;
   };
index ffce2c1b5e68466dd6d80c07c622074cd4146128..fc5d4e98fd9fe296d8fa4bd471aacf7e5fcf98e6 100644 (file)
@@ -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;
index f0e40fed082e21ac14e6c11d197c38fe06035ed0..e670a43c88efb69ef28505e444964c3171569eee 100644 (file)
@@ -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<std::pair<laddr_t, extent_len_t>> {
   template <typename... T>
   laddr_list_t(T&&... args)
index e4b4707b249c44e5c173ac45ba30b162e985f700..371e7f96c4253ee40e38c0917aa499533f1f20cd 100644 (file)
@@ -233,7 +233,7 @@ public:
 
 
   using ref_iertr = LBAManager::ref_iertr;
-  using ref_ret = ref_iertr::future<unsigned>;
+  using ref_ret = ref_iertr::future<extent_ref_count_t>;
 
 #ifdef UNIT_TESTS_BUILT
   /// Add refcount for ref