]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: add retry request to MDSRank wait queue rather via finisher
authorVenky Shankar <vshankar@redhat.com>
Fri, 17 Apr 2026 13:12:16 +0000 (18:42 +0530)
committerVenky Shankar <vshankar@redhat.com>
Thu, 14 May 2026 09:05:14 +0000 (14:35 +0530)
C_MDS_RetryRequest inherits from MDSInternalContext which does not
acquire mds_lock by itself. Adding to MDSRank wait queue will process
this via the progress thread which completes the context with mds_lock
acquired.

Fixes: http://tracker.ceph.com/issues/76031
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 02735a362c685bfdb975ab86c9b042a8792f75b0)

src/mds/MDCache.cc

index 053eb209512456d77775bb7f3a4e8d859842476c..2885d0255b10e1bd23252b568d7d2ca9dbc2f88f 100644 (file)
@@ -9965,7 +9965,7 @@ void MDCache::request_cleanup(const MDRequestRef& mdr)
     if (!new_batch_head) {
       mdr->batch_op_map->erase(it);
     } else {
-      mds->finisher->queue(new C_MDS_RetryRequest(this, new_batch_head));
+      mds->queue_waiter(new C_MDS_RetryRequest(this, new_batch_head));
     }
   }