From: Greg Farnum Date: Fri, 14 Mar 2014 00:04:17 +0000 (-0700) Subject: MDCache: pass the causative message to request_start_slave() X-Git-Tag: v0.82~82^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0d89e5ca45f96840a63160697a77f793c1fccf34;p=ceph.git MDCache: pass the causative message to request_start_slave() 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 --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 49f33080f5bf..f4c6e567aa2c 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -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; diff --git a/src/mds/MDCache.h b/src/mds/MDCache.h index c536d32f74b7..631d4e40d8cd 100644 --- a/src/mds/MDCache.h +++ b/src/mds/MDCache.h @@ -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); diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 64004b2270cd..251ae4f371a2 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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!