From: Samuel Just Date: Wed, 22 Jan 2025 02:47:09 +0000 (-0800) Subject: crimson/.../replicated_recovery_backend: route pushes earlier X-Git-Tag: v20.0.0~282^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=46d5eec6b604cff3f01a99507dfe5a97e9bb1869;p=ceph.git crimson/.../replicated_recovery_backend: route pushes earlier Let ReplicatedRecoveryBackend::handle_recovery_op route pushes between handle_push and handle_pull_response instead of ReplicatedRecoveryBackend::handle_push. Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc index 3ca12126d4f0..85582e04033d 100644 --- a/src/crimson/osd/replicated_recovery_backend.cc +++ b/src/crimson/osd/replicated_recovery_backend.cc @@ -1030,10 +1030,6 @@ ReplicatedRecoveryBackend::handle_push( Ref m) { LOG_PREFIX(ReplicatedRecoveryBackend::handle_push); - if (pg.is_primary()) { - return handle_pull_response(m); - } - DEBUGDPP("{}", pg, *m); return seastar::do_with(PushReplyOp(), [FNAME, this, m](auto& response) { PushOp& push_op = m->pushes[0]; // TODO: only one push per message for now @@ -1349,7 +1345,12 @@ ReplicatedRecoveryBackend::handle_recovery_op( case MSG_OSD_PG_PULL: return handle_pull(boost::static_pointer_cast(m)); case MSG_OSD_PG_PUSH: - return handle_push(boost::static_pointer_cast(m)); + if (pg.is_primary()) { + return handle_pull_response( + boost::static_pointer_cast(m)); + } else { + return handle_push(boost::static_pointer_cast(m)); + } case MSG_OSD_PG_PUSH_REPLY: return handle_push_reply( boost::static_pointer_cast(m));