Skip to content

Commit 4c419f4

Browse files
zhscnMatan-B
authored andcommitted
crimson/os/seastore/btree: move lba/backref_map_val_t to the common header file
rename btree_range_pin.h to btree_types.h Signed-off-by: Zhang Song <[email protected]> (cherry picked from commit 8c6d82e)
1 parent 0b6561e commit 4c419f4

File tree

14 files changed

+134
-121
lines changed

14 files changed

+134
-121
lines changed

src/crimson/os/seastore/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ set(crimson_seastore_srcs
1212
root_block.cc
1313
lba_manager.cc
1414
async_cleaner.cc
15+
btree/btree_types.cc
1516
backref_manager.cc
16-
backref/backref_tree_node.cc
1717
backref/btree_backref_manager.cc
1818
lba_manager/btree/btree_lba_manager.cc
1919
lba_manager/btree/lba_btree_node.cc

src/crimson/os/seastore/backref/backref_tree_node.cc

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/crimson/os/seastore/backref/backref_tree_node.h

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -44,42 +44,6 @@ constexpr size_t LEAF_NODE_CAPACITY = 193;
4444

4545
using BackrefNode = FixedKVNode<paddr_t>;
4646

47-
struct backref_map_val_t {
48-
extent_len_t len = 0; ///< length of extents
49-
laddr_t laddr = L_ADDR_MIN; ///< logical address of extents
50-
extent_types_t type = extent_types_t::ROOT;
51-
52-
backref_map_val_t() = default;
53-
backref_map_val_t(
54-
extent_len_t len,
55-
laddr_t laddr,
56-
extent_types_t type)
57-
: len(len), laddr(laddr), type(type) {}
58-
59-
bool operator==(const backref_map_val_t& rhs) const noexcept {
60-
return len == rhs.len && laddr == rhs.laddr;
61-
}
62-
};
63-
64-
std::ostream& operator<<(std::ostream &out, const backref_map_val_t& val);
65-
66-
struct __attribute__((packed)) backref_map_val_le_t {
67-
extent_len_le_t len = init_extent_len_le(0);
68-
laddr_le_t laddr = laddr_le_t(L_ADDR_MIN);
69-
extent_types_le_t type = 0;
70-
71-
backref_map_val_le_t() = default;
72-
backref_map_val_le_t(const backref_map_val_le_t &) = default;
73-
explicit backref_map_val_le_t(const backref_map_val_t &val)
74-
: len(init_extent_len_le(val.len)),
75-
laddr(val.laddr),
76-
type(extent_types_le_t(val.type)) {}
77-
78-
operator backref_map_val_t() const {
79-
return backref_map_val_t{len, laddr, (extent_types_t)type};
80-
}
81-
};
82-
8347
class BackrefInternalNode
8448
: public FixedKVInternalNode<
8549
INTERNAL_NODE_CAPACITY,

src/crimson/os/seastore/backref_mapping.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#pragma once
55

6-
#include "crimson/os/seastore/btree/btree_range_pin.h"
6+
#include "crimson/os/seastore/btree/btree_types.h"
77

88
namespace crimson::os::seastore {
99

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2+
// vim: ts=8 sw=2 smarttab
3+
4+
#include "crimson/os/seastore/btree/btree_types.h"
5+
6+
namespace crimson::os::seastore {
7+
8+
namespace lba_manager::btree {
9+
10+
std::ostream& operator<<(std::ostream& out, const lba_map_val_t& v)
11+
{
12+
return out << "lba_map_val_t("
13+
<< v.pladdr
14+
<< "~0x" << std::hex << v.len
15+
<< ", checksum=0x" << v.checksum
16+
<< ", refcount=" << std::dec << v.refcount
17+
<< ")";
18+
}
19+
20+
} // namespace lba_manager::btree
21+
22+
namespace backref {
23+
24+
std::ostream& operator<<(std::ostream &out, const backref_map_val_t& val) {
25+
return out << "backref_map_val_t("
26+
<< val.laddr
27+
<< "~0x" << std::hex << val.len << std::dec
28+
<< ")";
29+
}
30+
31+
} // namespace backref
32+
} // namespace crimson::os::seastore

src/crimson/os/seastore/btree/btree_range_pin.h renamed to src/crimson/os/seastore/btree/btree_types.h

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,96 @@ struct __attribute__((packed)) fixed_kv_node_meta_le_t {
100100
}
101101
};
102102

103-
}
103+
namespace lba_manager::btree {
104+
105+
/**
106+
* lba_map_val_t
107+
*
108+
* struct representing a single lba mapping
109+
*/
110+
struct lba_map_val_t {
111+
extent_len_t len = 0; ///< length of mapping
112+
pladdr_t pladdr; ///< direct addr of mapping or
113+
// laddr of a direct lba mapping(see btree_lba_manager.h)
114+
extent_ref_count_t refcount = 0; ///< refcount
115+
checksum_t checksum = 0; ///< checksum of original block written at paddr (TODO)
116+
117+
lba_map_val_t() = default;
118+
lba_map_val_t(
119+
extent_len_t len,
120+
pladdr_t pladdr,
121+
extent_ref_count_t refcount,
122+
checksum_t checksum)
123+
: len(len), pladdr(pladdr), refcount(refcount), checksum(checksum) {}
124+
bool operator==(const lba_map_val_t&) const = default;
125+
};
126+
127+
std::ostream& operator<<(std::ostream& out, const lba_map_val_t&);
128+
129+
/**
130+
* lba_map_val_le_t
131+
*
132+
* On disk layout for lba_map_val_t.
133+
*/
134+
struct __attribute__((packed)) lba_map_val_le_t {
135+
extent_len_le_t len = init_extent_len_le(0);
136+
pladdr_le_t pladdr;
137+
extent_ref_count_le_t refcount{0};
138+
checksum_le_t checksum{0};
139+
140+
lba_map_val_le_t() = default;
141+
lba_map_val_le_t(const lba_map_val_le_t &) = default;
142+
explicit lba_map_val_le_t(const lba_map_val_t &val)
143+
: len(init_extent_len_le(val.len)),
144+
pladdr(pladdr_le_t(val.pladdr)),
145+
refcount(val.refcount),
146+
checksum(val.checksum) {}
147+
148+
operator lba_map_val_t() const {
149+
return lba_map_val_t{ len, pladdr, refcount, checksum };
150+
}
151+
};
152+
153+
} // namespace lba_manager::btree
154+
155+
namespace backref {
156+
157+
struct backref_map_val_t {
158+
extent_len_t len = 0; ///< length of extents
159+
laddr_t laddr = L_ADDR_MIN; ///< logical address of extents
160+
extent_types_t type = extent_types_t::NONE;
161+
162+
backref_map_val_t() = default;
163+
backref_map_val_t(
164+
extent_len_t len,
165+
laddr_t laddr,
166+
extent_types_t type)
167+
: len(len), laddr(laddr), type(type) {}
168+
169+
bool operator==(const backref_map_val_t& rhs) const noexcept {
170+
return len == rhs.len && laddr == rhs.laddr;
171+
}
172+
};
173+
174+
std::ostream& operator<<(std::ostream &out, const backref_map_val_t& val);
175+
176+
struct __attribute__((packed)) backref_map_val_le_t {
177+
extent_len_le_t len = init_extent_len_le(0);
178+
laddr_le_t laddr = laddr_le_t(L_ADDR_MIN);
179+
extent_types_le_t type = 0;
180+
181+
backref_map_val_le_t() = default;
182+
backref_map_val_le_t(const backref_map_val_le_t &) = default;
183+
explicit backref_map_val_le_t(const backref_map_val_t &val)
184+
: len(init_extent_len_le(val.len)),
185+
laddr(val.laddr),
186+
type(extent_types_le_t(val.type)) {}
187+
188+
operator backref_map_val_t() const {
189+
return backref_map_val_t{len, laddr, (extent_types_t)type};
190+
}
191+
};
192+
193+
} // namespace backerf
194+
195+
} // namespace crimson::os::seastore

src/crimson/os/seastore/btree/fixed_kv_btree.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,10 @@
1212

1313
#include "crimson/os/seastore/cache.h"
1414
#include "crimson/os/seastore/seastore_types.h"
15-
#include "crimson/os/seastore/btree/btree_range_pin.h"
15+
#include "crimson/os/seastore/btree/btree_types.h"
1616
#include "crimson/os/seastore/root_block.h"
1717
#include "crimson/os/seastore/linked_tree_node.h"
1818

19-
namespace crimson::os::seastore::lba_manager::btree {
20-
struct lba_map_val_t;
21-
}
22-
2319
namespace crimson::os::seastore {
2420

2521
template <typename T>

src/crimson/os/seastore/btree/fixed_kv_node.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include "crimson/os/seastore/cache.h"
1717
#include "crimson/os/seastore/cached_extent.h"
1818

19-
#include "crimson/os/seastore/btree/btree_range_pin.h"
19+
#include "crimson/os/seastore/btree/btree_types.h"
2020
#include "crimson/os/seastore/btree/fixed_kv_btree.h"
2121
#include "crimson/os/seastore/root_block.h"
2222

src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include "crimson/os/seastore/cache.h"
2222

2323
#include "crimson/os/seastore/lba_manager/btree/lba_btree_node.h"
24-
#include "crimson/os/seastore/btree/btree_range_pin.h"
24+
#include "crimson/os/seastore/btree/btree_types.h"
2525

2626
namespace crimson::os::seastore {
2727
class LogicalCachedExtent;

src/crimson/os/seastore/lba_manager/btree/lba_btree_node.cc

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,6 @@ SET_SUBSYS(seastore_lba);
1818

1919
namespace crimson::os::seastore::lba_manager::btree {
2020

21-
std::ostream& operator<<(std::ostream& out, const lba_map_val_t& v)
22-
{
23-
return out << "lba_map_val_t("
24-
<< v.pladdr
25-
<< "~" << v.len
26-
<< ", refcount=" << v.refcount
27-
<< ", checksum=" << v.checksum
28-
<< ")";
29-
}
30-
3121
std::ostream &LBALeafNode::print_detail(std::ostream &out) const
3222
{
3323
out << ", size=" << this->get_size()

0 commit comments

Comments
 (0)