From: Zhang Song Date: Tue, 6 Dec 2022 07:38:36 +0000 (+0800) Subject: crimson/os/seastore: update assertion about reservation X-Git-Tag: v18.1.0~699^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=ca38f8ce90dc8efa832f6b652be03748dff170a9;p=ceph.git crimson/os/seastore: update assertion about reservation Signed-off-by: Zhang Song --- diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index 535d52e2c0798..512c40c7d804b 100644 --- a/src/crimson/os/seastore/extent_placement_manager.cc +++ b/src/crimson/os/seastore/extent_placement_manager.cc @@ -443,7 +443,9 @@ seastar::future<> ExtentPlacementManager::BackgroundProcess::reserve_projected_usage( projected_usage_t usage) { - ceph_assert(is_ready()); + if (!is_ready()) { + return seastar::now(); + } ceph_assert(!blocking_io); // The pipeline configuration prevents another IO from entering // prepare until the prior one exits and clears this. @@ -470,7 +472,7 @@ ExtentPlacementManager::BackgroundProcess::reserve_projected_usage( ceph_assert(!blocking_io); auto res = try_reserve(usage); if (res.is_successful()) { - assert(stats.io_blocking_num > 0); + assert(stats.io_blocking_num == 1); --stats.io_blocking_num; return seastar::make_ready_future( seastar::stop_iteration::yes); diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 3297af0394f8b..45e1f9b1e199b 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -463,9 +463,10 @@ private: seastar::future<> reserve_projected_usage(projected_usage_t usage); void release_projected_usage(projected_usage_t usage) { - ceph_assert(is_ready()); - trimmer->release_inline_usage(usage.inline_usage); - cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage); + if (is_ready()) { + trimmer->release_inline_usage(usage.inline_usage); + cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage); + } } seastar::future<> stop_background();