From 847242eebe2a8259ef05e954cd17db452835ca79 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Thu, 9 Sep 2021 16:18:32 +0800 Subject: [PATCH] crimson/os/seastore: fix epm rolling_segment leak when the transaction is interrupted Signed-off-by: Xuehan Xu --- src/crimson/os/seastore/extent_placement_manager.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index 2f4bb480523d..adf8496f485a 100644 --- a/src/crimson/os/seastore/extent_placement_manager.cc +++ b/src/crimson/os/seastore/extent_placement_manager.cc @@ -159,6 +159,9 @@ SegmentedAllocator::Writer::write( write_iertr::now() ).si_then([this]() mutable { return roll_segment(false); + }).finally([this] { + rolling_segment = false; + segment_rotation_guard.broadcast(); }); } add_extent_to_write(record, extent); -- 2.47.3