Skip to content

Commit 9c9e4e6

Browse files
committed
crimson/os/seastore/cached_extent: drop CLEAN_PENDING state
It is only used to prevent printing details when the buffer is still loading, and is a special case of CLEAN. It doesn't worth a dedicated state that complicates state-related decisions. Signed-off-by: Yingxin Cheng <[email protected]>
1 parent ecf4a71 commit 9c9e4e6

File tree

3 files changed

+12
-18
lines changed

3 files changed

+12
-18
lines changed

src/crimson/os/seastore/cache.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,7 @@ class Cache : public ExtentTransViewRetriever {
703703
if (!cached) {
704704
// partial read
705705
TCachedExtentRef<T> ret = CachedExtent::make_cached_extent_ref<T>(length);
706-
ret->init(CachedExtent::extent_state_t::CLEAN_PENDING,
706+
ret->init(CachedExtent::extent_state_t::CLEAN,
707707
offset,
708708
PLACEMENT_HINT_NULL,
709709
NULL_GENERATION,
@@ -724,7 +724,7 @@ class Cache : public ExtentTransViewRetriever {
724724
if (is_retired_placeholder_type(cached->get_type())) {
725725
// partial read
726726
TCachedExtentRef<T> ret = CachedExtent::make_cached_extent_ref<T>(length);
727-
ret->init(CachedExtent::extent_state_t::CLEAN_PENDING,
727+
ret->init(CachedExtent::extent_state_t::CLEAN,
728728
offset,
729729
PLACEMENT_HINT_NULL,
730730
NULL_GENERATION,
@@ -1935,8 +1935,7 @@ class Cache : public ExtentTransViewRetriever {
19351935
const Transaction::src_t* p_src
19361936
) {
19371937
LOG_PREFIX(Cache::read_extent);
1938-
assert(extent->state == CachedExtent::extent_state_t::CLEAN_PENDING ||
1939-
extent->state == CachedExtent::extent_state_t::EXIST_CLEAN ||
1938+
assert(extent->state == CachedExtent::extent_state_t::EXIST_CLEAN ||
19401939
extent->state == CachedExtent::extent_state_t::CLEAN);
19411940
assert(!extent->is_range_loaded(offset, length));
19421941
assert(is_aligned(offset, get_block_size()));
@@ -1962,9 +1961,6 @@ class Cache : public ExtentTransViewRetriever {
19621961
});
19631962
}).safe_then(
19641963
[this, FNAME, extent=std::move(extent), offset, length]() mutable {
1965-
if (likely(extent->state == CachedExtent::extent_state_t::CLEAN_PENDING)) {
1966-
extent->state = CachedExtent::extent_state_t::CLEAN;
1967-
}
19681964
ceph_assert(extent->state == CachedExtent::extent_state_t::EXIST_CLEAN
19691965
|| extent->state == CachedExtent::extent_state_t::CLEAN
19701966
|| !extent->is_valid());

src/crimson/os/seastore/cached_extent.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ std::ostream &operator<<(std::ostream &out, CachedExtent::extent_state_t state)
4747
return out << "INITIAL_WRITE_PENDING";
4848
case CachedExtent::extent_state_t::MUTATION_PENDING:
4949
return out << "MUTATION_PENDING";
50-
case CachedExtent::extent_state_t::CLEAN_PENDING:
51-
return out << "CLEAN_PENDING";
5250
case CachedExtent::extent_state_t::CLEAN:
5351
return out << "CLEAN";
5452
case CachedExtent::extent_state_t::DIRTY:

src/crimson/os/seastore/cached_extent.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,6 @@ class CachedExtent
272272
enum class extent_state_t : uint8_t {
273273
INITIAL_WRITE_PENDING, // In Transaction::write_set and fresh_block_list
274274
MUTATION_PENDING, // In Transaction::write_set and mutated_block_list
275-
CLEAN_PENDING, // CLEAN, but not yet read out
276275
CLEAN, // In Cache::extent_index, Transaction::read_set
277276
// during write, contents match disk, version == 0
278277
DIRTY, // Same as CLEAN, but contents do not match disk,
@@ -479,8 +478,7 @@ class CachedExtent
479478
<< ", refcount=" << use_count()
480479
<< ", user_hint=" << user_hint
481480
<< ", rewrite_gen=" << rewrite_gen_printer_t{rewrite_generation};
482-
if (state != extent_state_t::INVALID &&
483-
state != extent_state_t::CLEAN_PENDING) {
481+
if (is_valid() && is_fully_loaded() && !is_stable_clean_pending()) {
484482
print_detail(out);
485483
}
486484
return out << ")";
@@ -559,9 +557,8 @@ class CachedExtent
559557

560558
/// Returns true if extent is stable, written and shared among transactions
561559
bool is_stable_written() const {
562-
return state == extent_state_t::CLEAN_PENDING ||
563-
state == extent_state_t::CLEAN ||
564-
state == extent_state_t::DIRTY;
560+
return state == extent_state_t::CLEAN
561+
|| state == extent_state_t::DIRTY;
565562
}
566563

567564
bool is_stable_writting() const {
@@ -598,15 +595,18 @@ class CachedExtent
598595
ceph_assert(is_valid());
599596
return state == extent_state_t::INITIAL_WRITE_PENDING ||
600597
state == extent_state_t::CLEAN ||
601-
state == extent_state_t::CLEAN_PENDING ||
602598
state == extent_state_t::EXIST_CLEAN;
603599
}
604600

605601
// Returs true if extent is stable and clean
606602
bool is_stable_clean() const {
607603
ceph_assert(is_valid());
608-
return state == extent_state_t::CLEAN ||
609-
state == extent_state_t::CLEAN_PENDING;
604+
return state == extent_state_t::CLEAN;
605+
}
606+
607+
// Returns true if the buffer is still loading
608+
bool is_stable_clean_pending() const {
609+
return is_stable_clean() && is_pending_io();
610610
}
611611

612612
/// Ruturns true if data is persisted while metadata isn't

0 commit comments

Comments
 (0)