}
}
+void EphemeralSegmentManager::remount()
+{
+ for (auto &i : segment_state) {
+ if (i == Segment::segment_state_t::OPEN)
+ i = Segment::segment_state_t::CLOSED;
+ }
+}
+
SegmentManager::open_ertr::future<SegmentRef> EphemeralSegmentManager::open(
segment_id_t id)
{
#include "crimson/os/seastore/segment_cleaner.h"
#include "crimson/os/seastore/cache.h"
#include "crimson/os/seastore/transaction_manager.h"
+#include "crimson/os/seastore/segment_manager/ephemeral.h"
#include "crimson/os/seastore/segment_manager.h"
#include "test/crimson/seastore/test_block.h"
void replay() {
tm->close().unsafe_get();
- auto next = segment_cleaner->get_next();
destroy();
+ static_cast<segment_manager::EphemeralSegmentManager*>(&*segment_manager)->remount();
init();
- segment_cleaner->set_next(next);
tm->mount().unsafe_get();
}