From: Matan Breizman Date: Mon, 9 Feb 2026 08:49:35 +0000 (+0000) Subject: Revert "crimson/os/seastore/cached_extent: treat extents under rewrite io as" X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e47e16ba24b76e366275965fad0ba477b177ef81;p=ceph.git Revert "crimson/os/seastore/cached_extent: treat extents under rewrite io as" This reverts commit ec66079995e8c32771ecd42c5f3c386c5c4c2022. Signed-off-by: Matan Breizman --- diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index b3dab60882d..1bb973c8c00 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -1431,8 +1431,7 @@ record_t Cache::prepare_record( for (auto &i: t.mutated_block_list) { if (i->is_valid()) { if (i->is_mutation_pending()) { - i->set_io_wait(CachedExtent::extent_state_t::DIRTY, - is_rewrite_transaction(t.get_src())); + i->set_io_wait(CachedExtent::extent_state_t::DIRTY); commit_replace_extent(t, i, i->prior_instance); } // else, is_exist_mutation_pending(): // - it doesn't have prior_instance to replace @@ -1575,8 +1574,7 @@ record_t Cache::prepare_record( i->get_length(), i->get_type())); } - i->set_io_wait(CachedExtent::extent_state_t::CLEAN, - is_rewrite_transaction(t.get_src())); + i->set_io_wait(CachedExtent::extent_state_t::CLEAN); // Note, paddr is known until complete_commit(), // so add_extent() later. if (is_rewrite_transaction(t.get_src())) { @@ -1592,7 +1590,7 @@ record_t Cache::prepare_record( committer.sync_checksum(); } i->get_prior_instance()->set_io_wait( - CachedExtent::extent_state_t::CLEAN, true); + CachedExtent::extent_state_t::CLEAN); } } @@ -1617,6 +1615,9 @@ record_t Cache::prepare_record( i->get_length(), i->get_type())); } + i->set_io_wait(CachedExtent::extent_state_t::CLEAN); + // Note, paddr is (can be) known until complete_commit(), + // so add_extent() later. if (is_rewrite_transaction(t.get_src())) { assert(i->get_prior_instance()); assert(!i->committer); @@ -1630,15 +1631,9 @@ record_t Cache::prepare_record( if (is_lba_backref_node(i->get_type())) { committer.sync_checksum(); } - committer.block_trans(t); i->get_prior_instance()->set_io_wait( CachedExtent::extent_state_t::CLEAN, true); } - i->set_io_wait(CachedExtent::extent_state_t::CLEAN, - is_rewrite_transaction(t.get_src())); - // Note, paddr is (can be) known until complete_commit(), - // so add_extent() later. - } for (auto &i: t.inplace_ool_block_list) { @@ -1684,8 +1679,7 @@ record_t Cache::prepare_record( i->state = CachedExtent::extent_state_t::CLEAN; } else { assert(i->is_exist_mutation_pending()); - i->set_io_wait(CachedExtent::extent_state_t::DIRTY, - is_rewrite_transaction(t.get_src())); + i->set_io_wait(CachedExtent::extent_state_t::DIRTY); } // exist mutation pending extents must be in t.mutated_block_list diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index d4acc3da87d..547246a6972 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -1912,7 +1912,7 @@ private: assert(is_aligned(offset, get_block_size())); assert(is_aligned(length, get_block_size())); assert(extent->get_paddr().is_absolute()); - extent->set_io_wait(extent->state, false); + extent->set_io_wait(extent->state); auto old_length = extent->get_loaded_length(); load_ranges_t to_read = extent->load_ranges(offset, length); auto new_length = extent->get_loaded_length(); diff --git a/src/crimson/os/seastore/cached_extent.h b/src/crimson/os/seastore/cached_extent.h index 1a1144c31fa..a0ef8b49d66 100644 --- a/src/crimson/os/seastore/cached_extent.h +++ b/src/crimson/os/seastore/cached_extent.h @@ -653,7 +653,7 @@ public: /// Returns true iff extent is stable and not io-pending bool is_stable_ready() const { - return is_stable() && (!is_pending_io() || io_wait->rewriting); + return is_stable() && !is_pending_io(); } /// Returns true if extent can not be mutated, @@ -963,13 +963,12 @@ private: struct io_wait_t { seastar::shared_promise<> pr; extent_state_t from_state; - bool rewriting = false; }; std::optional io_wait; - void set_io_wait(extent_state_t new_state, bool rewriting) { + void set_io_wait(extent_state_t new_state) { ceph_assert(!io_wait); - io_wait.emplace(seastar::shared_promise<>(), state, rewriting); + io_wait.emplace(seastar::shared_promise<>(), state); state = new_state; assert(is_data_stable()); }