Skip to content

Commit a49d9e1

Browse files
authored
Merge pull request ceph#63389 from cyx1231st/wip-seastore-refine-extent-states
crimson/os/seastore: cleanup CachedExtent::extent_state_t and related logic Reviewed-by: Xuehan Xu <[email protected]>
2 parents da333f6 + 3871924 commit a49d9e1

20 files changed

+186
-176
lines changed

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

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ class FixedKVBtree {
509509
auto &prior = (child_node_t &)*child_node->get_prior_instance();
510510
assert(prior.is_valid());
511511
assert(prior.is_parent_valid());
512-
if (node->is_mutation_pending()) {
512+
if (node->is_pending()) {
513513
auto &n = node->get_stable_for_key(i->get_key());
514514
assert(prior.peek_parent_node().get() == &n);
515515
auto pos = n.lower_bound(i->get_key()).get_offset();
@@ -1192,7 +1192,7 @@ class FixedKVBtree {
11921192
parent_pos=std::move(parent_pos)]
11931193
(internal_node_t &node) {
11941194
using tree_root_linker_t = TreeRootLinker<RootBlock, internal_node_t>;
1195-
assert(!node.is_pending());
1195+
assert(node.is_stable());
11961196
assert(!node.is_linked());
11971197
node.range = fixed_kv_node_meta_t<node_key_t>{begin, end, depth};
11981198
if (parent_pos) {
@@ -1205,7 +1205,7 @@ class FixedKVBtree {
12051205
auto &stable_root = (RootBlockRef&)*root_block->get_prior_instance();
12061206
tree_root_linker_t::link_root(stable_root, &node);
12071207
} else {
1208-
assert(!root_block->is_pending());
1208+
assert(root_block->is_stable());
12091209
tree_root_linker_t::link_root(root_block, &node);
12101210
}
12111211
}
@@ -1236,10 +1236,8 @@ class FixedKVBtree {
12361236
*ret);
12371237
// This can only happen during init_cached_extent
12381238
// or when backref extent being rewritten by gc space reclaiming
1239-
if (!ret->is_pending() && !ret->is_linked()) {
1240-
assert(ret->is_dirty()
1241-
|| (is_backref_node(ret->get_type())
1242-
&& ret->is_clean()));
1239+
if (ret->is_stable() && !ret->is_linked()) {
1240+
assert(ret->has_delta() || is_backref_node(ret->get_type()));
12431241
init_internal(*ret);
12441242
}
12451243
auto meta = ret->get_meta();
@@ -1278,7 +1276,7 @@ class FixedKVBtree {
12781276
parent_pos=std::move(parent_pos)]
12791277
(leaf_node_t &node) {
12801278
using tree_root_linker_t = TreeRootLinker<RootBlock, leaf_node_t>;
1281-
assert(!node.is_pending());
1279+
assert(node.is_stable());
12821280
assert(!node.is_linked());
12831281
node.range = fixed_kv_node_meta_t<node_key_t>{begin, end, 1};
12841282
if (parent_pos) {
@@ -1291,7 +1289,7 @@ class FixedKVBtree {
12911289
auto &stable_root = (RootBlockRef&)*root_block->get_prior_instance();
12921290
tree_root_linker_t::link_root(stable_root, &node);
12931291
} else {
1294-
assert(!root_block->is_pending());
1292+
assert(root_block->is_stable());
12951293
tree_root_linker_t::link_root(root_block, &node);
12961294
}
12971295
}
@@ -1321,10 +1319,8 @@ class FixedKVBtree {
13211319
*ret);
13221320
// This can only happen during init_cached_extent
13231321
// or when backref extent being rewritten by gc space reclaiming
1324-
if (!ret->is_pending() && !ret->is_linked()) {
1325-
assert(ret->is_dirty()
1326-
|| (is_backref_node(ret->get_type())
1327-
&& ret->is_clean()));
1322+
if (ret->is_stable() && !ret->is_linked()) {
1323+
assert(ret->has_delta() || is_backref_node(ret->get_type()));
13281324
init_leaf(*ret);
13291325
}
13301326
auto meta = ret->get_meta();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ struct FixedKVInternalNode
182182
}
183183

184184
virtual ~FixedKVInternalNode() {
185-
if (this->is_valid() && !this->is_pending()) {
185+
if (this->is_stable()) {
186186
if (this->is_btree_root()) {
187187
this->root_node_t::destroy();
188188
} else {
@@ -571,7 +571,7 @@ struct FixedKVLeafNode
571571
}
572572

573573
virtual ~FixedKVLeafNode() {
574-
if (this->is_valid() && !this->is_pending()) {
574+
if (this->is_stable()) {
575575
if (this->is_btree_root()) {
576576
this->root_node_t::destroy();
577577
} else {

0 commit comments

Comments
 (0)