Revert "crimson/os/seastore: add releasing state for segments pending close"

This won't be necessary with the refactor in this series.

This reverts commit 3768ef692f.

Signed-off-by: Samuel Just <sjust@redhat.com>
This commit is contained in:
Samuel Just 2021-03-12 18:07:06 -08:00
parent 9e8253f69c
commit 1c8a495101
4 changed files with 4 additions and 20 deletions

View File

@ -331,7 +331,6 @@ SegmentCleaner::do_gc_ret SegmentCleaner::do_gc(
}).safe_then([&t, this] {
if (scan_cursor->is_complete()) {
t.mark_segment_to_release(scan_cursor->get_offset().segment);
mark_releasing(scan_cursor->get_offset().segment);
scan_cursor.reset();
}
return ExtentCallbackInterface::release_segment_ertr::now();

View File

@ -35,10 +35,6 @@ struct segment_info_t {
return state == Segment::segment_state_t::CLOSED;
}
bool is_releasing() const {
return state == Segment::segment_state_t::RELEASING;
}
bool is_open() const {
return state == Segment::segment_state_t::OPEN;
}
@ -669,16 +665,9 @@ private:
segments[segment].state = Segment::segment_state_t::CLOSED;
}
void mark_releasing(segment_id_t segment) {
assert(segments.size() > segment);
assert(segments[segment].is_closed());
segments[segment].state = Segment::segment_state_t::RELEASING;
}
void mark_empty(segment_id_t segment) {
assert(segments.size() > segment);
assert(segments[segment].is_releasing());
assert(segments[segment].is_closed());
assert(segments.size() > empty_segments);
++empty_segments;
if (space_tracker->get_usage(segment) != 0) {

View File

@ -24,8 +24,7 @@ public:
enum class segment_state_t : uint8_t {
EMPTY = 0,
OPEN = 1,
CLOSED = 2,
RELEASING = 3
CLOSED = 2
};
/**

View File

@ -214,11 +214,8 @@ TransactionManager::submit_transaction(
lba_manager->complete_transaction(tref);
auto to_release = tref.get_segment_to_release();
if (to_release != NULL_SEG_ID) {
return segment_manager.release(to_release
).safe_then([this, to_release] {
segment_cleaner->mark_segment_released(to_release);
return SegmentManager::release_ertr::now();
});
segment_cleaner->mark_segment_released(to_release);
return segment_manager.release(to_release);
} else {
return SegmentManager::release_ertr::now();
}