]> 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>
Sat, 2 May 2026 13:41:50 +0000 (19:11 +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>
src/mds/MDCache.cc

index 9dc40a31bf2eead02ca5e44d120ad40612c08790..c17c77c152cda3a0448ffe08530da0aa025d42ec 100644 (file)
@@ -10006,7 +10006,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));
     }
   }