From: Sage Weil Date: Wed, 13 Mar 2013 23:46:47 +0000 (-0700) Subject: Merge remote-tracking branch 'dalgaaf/wip-da-performance' X-Git-Tag: v0.60~79 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=22f51f02e2abde05191af5e2d7671323101c3b05;p=ceph.git Merge remote-tracking branch 'dalgaaf/wip-da-performance' Conflicts: src/client/Client.cc Reviewed-by: Sage Weil --- 22f51f02e2abde05191af5e2d7671323101c3b05 diff --cc src/client/Client.cc index 970fd9c8b181,437d473429d5..5d7fc5faa8bd --- a/src/client/Client.cc +++ b/src/client/Client.cc @@@ -1109,12 -1109,13 +1109,12 @@@ void Client::connect_mds_targets(int md const MDSMap::mds_info_t& info = mdsmap->get_mds_info(mds); for (set::const_iterator q = info.export_targets.begin(); q != info.export_targets.end(); - q++) { + ++q) { - if (mds_sessions.count(*q) == 0 && waiting_for_session.count(*q) == 0) { + if (mds_sessions.count(*q) == 0 && + mdsmap->is_clientreplay_or_active_or_stopping(*q)) { ldout(cct, 10) << "check_mds_sessions opening mds." << mds - << " export target mds." << *q << dendl; - messenger->send_message(new MClientSession(CEPH_SESSION_REQUEST_OPEN), - mdsmap->get_inst(*q)); - waiting_for_session[*q].size(); + << " export target mds." << *q << dendl; + _open_mds_session(*q); } } } @@@ -2366,11 -2364,8 +2366,11 @@@ void Client::check_caps(Inode *in, boo while (it != in->caps.end()) { int mds = it->first; Cap *cap = it->second; - it++; + ++it; + MetaSession *session = mds_sessions[mds]; + assert(session); + int revoking = cap->implemented & ~cap->issued; ldout(cct, 10) << " cap mds." << mds @@@ -2507,10 -2502,11 +2507,10 @@@ void Client::flush_snaps(Inode *in, boo // pick auth mds assert(in->auth_cap); - int mds = in->auth_cap->session->inst.name.num(); + MetaSession *session = in->auth_cap->session; int mseq = in->auth_cap->mseq; - assert(mds >= 0); - for (map::iterator p = in->cap_snaps.begin(); p != in->cap_snaps.end(); p++) { + for (map::iterator p = in->cap_snaps.begin(); p != in->cap_snaps.end(); ++p) { CapSnap *capsnap = p->second; if (again) { // only one capsnap @@@ -3787,9 -3777,9 +3787,9 @@@ void Client::flush_cap_releases( // send any cap releases for (map::iterator p = mds_sessions.begin(); p != mds_sessions.end(); - p++) { + ++p) { - if (p->second->release && mdsmap->is_up(p->first)) { - messenger->send_message(p->second->release, mdsmap->get_inst(p->first)); + if (p->second->release && mdsmap->is_clientreplay_or_active_or_stopping(p->first)) { + messenger->send_message(p->second->release, p->second->con); p->second->release = 0; } } @@@ -3839,10 -3829,10 +3839,10 @@@ void Client::renew_caps( for (map::iterator p = mds_sessions.begin(); p != mds_sessions.end(); - p++) { + ++p) { ldout(cct, 15) << "renew_caps requesting from mds." << p->first << dendl; if (mdsmap->get_state(p->first) >= MDSMap::STATE_REJOIN) - renew_caps(p->first); + renew_caps(p->second); } }