From 604112eb867c20e4f94835edff6a542630503bd6 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Wed, 27 Mar 2024 12:03:12 -0400 Subject: [PATCH] mds: do not dispatch aborted internal requests Matching the behavior of Server::dispatch_client_request. This logic can be unified in a future refactor but keeping this as a targetted fix for the purposes of the bug. Fixes: https://tracker.ceph.com/issues/65182 Signed-off-by: Patrick Donnelly --- src/mds/MDCache.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 127721f085bbc..0226ce32f719a 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -9818,6 +9818,11 @@ void MDCache::dispatch_request(const MDRequestRef& mdr) } else if (mdr->peer_request) { mds->server->dispatch_peer_request(mdr); } else { + if (mdr->aborted) { + mdr->aborted = false; + request_kill(mdr); + return; + } switch (mdr->internal_op) { case CEPH_MDS_OP_QUIESCE_PATH: dispatch_quiesce_path(mdr); -- 2.39.5