]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: fix epm rolling_segment leak when the transaction is interrupted 43108/head
authorXuehan Xu <xxhdx1985126@gmail.com>
Thu, 9 Sep 2021 08:18:32 +0000 (16:18 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Thu, 9 Sep 2021 08:22:26 +0000 (16:22 +0800)
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/os/seastore/extent_placement_manager.cc

index 2f4bb480523dc126484f73263c391ba970eb8907..adf8496f485ab25c3ab55c46fe1b5851ce55ed2d 100644 (file)
@@ -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);