]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: attach quiesce_path mdr to finisher at creation not dispatch
authorPatrick Donnelly <pdonnell@redhat.com>
Wed, 27 Mar 2024 16:04:57 +0000 (12:04 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 27 Mar 2024 16:05:28 +0000 (12:05 -0400)
No functional difference but this is cleaner.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/MDCache.cc

index 127721f085bbc3d41c0944fa7e571fc5f56bc83c..e46e931459b895d518c858db7b3ff851a1d5492a 100644 (file)
@@ -13761,6 +13761,7 @@ void MDCache::dispatch_quiesce_path(const MDRequestRef& mdr)
   dout(5) << __func__ << ": dispatching" << dendl;
 
   C_MDS_QuiescePath* qfinisher = static_cast<C_MDS_QuiescePath*>(mdr->internal_op_finish);
+  ceph_assert(qfinisher->mdr == mdr);
   auto& qs = *qfinisher->qs;
   auto delay = g_conf().get_val<std::chrono::milliseconds>("mds_cache_quiesce_delay");
   auto splitauth = g_conf().get_val<bool>("mds_cache_quiesce_splitauth");
@@ -13791,8 +13792,6 @@ void MDCache::dispatch_quiesce_path(const MDRequestRef& mdr)
     return;
   }
 
-  qfinisher->mdr = mdr;
-
   {
     int myrc = 0;
     for (auto& [qimdr, rc] : qs.get_failed()) {
@@ -13842,6 +13841,7 @@ MDRequestRef MDCache::quiesce_path(filepath p, C_MDS_QuiescePath* c, Formatter *
   MDRequestRef mdr = request_start_internal(CEPH_MDS_OP_QUIESCE_PATH);
   mdr->set_filepath(p);
   mdr->internal_op_finish = c;
+  c->mdr = mdr;
 
   if (delay > 0ms) {
     mds->timer.add_event_after(delay, new LambdaContext([cache=this,mdr=mdr](int r) {