From 0d89e5ca45f96840a63160697a77f793c1fccf34 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Thu, 13 Mar 2014 17:04:17 -0700 Subject: [PATCH] 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 --- src/mds/MDCache.cc | 7 ++++--- src/mds/MDCache.h | 2 +- src/mds/Server.cc | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 49f33080f5b..f4c6e567aa2 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 c536d32f74b..631d4e40d8c 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 64004b2270c..251ae4f371a 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! -- 2.47.3