mirror of
https://github.com/ceph/ceph
synced 2025-02-24 11:37:37 +00:00
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:
parent
9e8253f69c
commit
1c8a495101
@ -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();
|
||||
|
@ -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) {
|
||||
|
@ -24,8 +24,7 @@ public:
|
||||
enum class segment_state_t : uint8_t {
|
||||
EMPTY = 0,
|
||||
OPEN = 1,
|
||||
CLOSED = 2,
|
||||
RELEASING = 3
|
||||
CLOSED = 2
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user