From: Xuehan Xu Date: Thu, 9 Sep 2021 08:18:32 +0000 (+0800) Subject: crimson/os/seastore: fix epm rolling_segment leak when the transaction is interrupted X-Git-Tag: v17.1.0~909^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=847242eebe2a8259ef05e954cd17db452835ca79;p=ceph.git crimson/os/seastore: fix epm rolling_segment leak when the transaction is interrupted Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index 2f4bb480523dc..adf8496f485ab 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);