From: Radoslaw Zarzynski Date: Wed, 21 May 2025 13:44:06 +0000 (+0000) Subject: fixup: crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend X-Git-Tag: v21.0.0~3^2~27 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6e8109f33dbb3cafd051857bb7826228ea685718;p=ceph.git fixup: crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/ec_backend.cc b/src/crimson/osd/ec_backend.cc index 8937c658fa94..7b9f794ae4a0 100644 --- a/src/crimson/osd/ec_backend.cc +++ b/src/crimson/osd/ec_backend.cc @@ -459,27 +459,16 @@ ECBackend::handle_rep_write_reply(ECSubWriteReply&& op) auto& wop = *rmw_pipeline.tid_to_op_map.at(op.tid); if (op.committed) { // TODO: trace.event("sub write committed"); - logger().debug("ECBackend::{} from {} pending_commit {}", - __func__, from, wop.pending_commit); - ceph_assert(wop.pending_commit.count(from)); - wop.pending_commit.erase(from); + logger().debug("ECBackend::{} from {} pending_commits {}", + __func__, from, wop.pending_commits); + ceph_assert(wop.pending_commits > 0); + --wop.pending_commits; + // update_peer_last_complete_ondisk() is called by the higher + // layer handler: PG::handle_rep_write_reply(). } - if (op.applied) { - // TODO: trace.event("sub write applied"); - ceph_assert(wop.pending_apply.count(from)); - wop.pending_apply.erase(from); + if (wop.pending_commits == 0) { + rmw_pipeline.try_finish_rmw(); } - - if (wop.pending_commit.empty() && - wop.on_all_commit && - // also wait for apply, to preserve ordering with luminous peers. - wop.pending_apply.empty()) { - logger().info("ECBackend::{}: calling on_all_commit on {}", __func__, wop); - wop.on_all_commit->complete(0); - wop.on_all_commit = 0; - // TODO: wop.trace.event("ec write all committed"); - } - rmw_pipeline.check_ops(); return write_iertr::now(); }