]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
MDCache: pass the causative message to request_start_slave()
authorGreg Farnum <greg@inktank.com>
Fri, 14 Mar 2014 00:04:17 +0000 (17:04 -0700)
committerGreg Farnum <greg@inktank.com>
Mon, 12 May 2014 21:39:57 +0000 (14:39 -0700)
We were passing the causative MDS (as an int), but pushing down the
actual Message will help us as we set up an OpTracker.

Signed-off-by: Greg Farnum <greg@inktank.com>
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/Server.cc

index 49f33080f5bf59822425f44ab4026afa7d90b004..f4c6e567aa2ce48e42b83156cfe0dcb392723a79 100644 (file)
@@ -4485,7 +4485,7 @@ void MDCache::handle_cache_rejoin_strong(MMDSCacheRejoin *strong)
          if (have_request(r->reqid))
            mdr = request_get(r->reqid);
          else
-           mdr = request_start_slave(r->reqid, r->attempt, from);
+           mdr = request_start_slave(r->reqid, r->attempt, strong);
          mdr->auth_pin(dn);
        }
       }
@@ -4580,7 +4580,7 @@ void MDCache::handle_cache_rejoin_strong(MMDSCacheRejoin *strong)
        if (have_request(r->reqid))
          mdr = request_get(r->reqid);
        else
-         mdr = request_start_slave(r->reqid, r->attempt, from);
+         mdr = request_start_slave(r->reqid, r->attempt, strong);
        if (strong->frozen_authpin_inodes.count(in->vino())) {
          assert(!in->get_num_auth_pins());
          mdr->freeze_auth_pin(in);
@@ -8873,8 +8873,9 @@ MDRequestRef MDCache::request_start(MClientRequest *req)
   return mdr;
 }
 
-MDRequestRef MDCache::request_start_slave(metareqid_t ri, __u32 attempt, int by)
+MDRequestRef MDCache::request_start_slave(metareqid_t ri, __u32 attempt, Message *m)
 {
+  int by = m->get_source().num();
   MDRequestRef mdr(new MDRequestImpl(ri, attempt, by));
   assert(active_requests.count(mdr->reqid) == 0);
   active_requests[mdr->reqid] = mdr;
index c536d32f74b717d900e77d32301895aa94b1425c..631d4e40d8cd01a5962a24e79530c7539e0536d3 100644 (file)
@@ -246,7 +246,7 @@ public:
   int get_num_client_requests();
 
   MDRequestRef request_start(MClientRequest *req);
-  MDRequestRef request_start_slave(metareqid_t rid, __u32 attempt, int by);
+  MDRequestRef request_start_slave(metareqid_t rid, __u32 attempt, Message *m);
   MDRequestRef request_start_internal(int op);
   bool have_request(metareqid_t rid) {
     return active_requests.count(rid);
index 64004b2270cdfa3130d06b9102585214a38567b6..251ae4f371a2ecf28c3c42ad16d812e8898fc677 100644 (file)
@@ -1356,7 +1356,7 @@ void Server::handle_slave_request(MMDSSlaveRequest *m)
       m->put();
       return;
     }
-    mdr = mdcache->request_start_slave(m->get_reqid(), m->get_attempt(), from);
+    mdr = mdcache->request_start_slave(m->get_reqid(), m->get_attempt(), m);
   }
   assert(mdr->slave_request == 0);     // only one at a time, please!