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);
}
}
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);
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;
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);
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!