]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
fixup: crimson/osd: wire MOSDECSubOpWriteReply up with ECBackend
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 21 May 2025 13:44:06 +0000 (13:44 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 27 Jan 2026 19:42:59 +0000 (19:42 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/ec_backend.cc

index 5262b7ed8177409a93f5b9915561bdd8db1fffc1..f297788430eaf3af4efbf4b2ad29778e0fca0d2a 100644 (file)
@@ -458,27 +458,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();
 }