From: Sage Weil Date: Thu, 29 Jul 2010 20:24:08 +0000 (-0700) Subject: Merge branch 'unstable' into mon-remove X-Git-Tag: v0.22~363 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9052986fd3fb5fc065fd9781bbfdb131194e845a;p=ceph.git Merge branch 'unstable' into mon-remove Conflicts: src/cmon.cc src/include/ceph_fs.h src/mon/MonClient.cc src/mon/Monitor.cc --- 9052986fd3fb5fc065fd9781bbfdb131194e845a diff --cc src/include/ceph_fs.h index 8c672a45b72,f8823e13386..70a451ccbc9 --- a/src/include/ceph_fs.h +++ b/src/include/ceph_fs.h @@@ -56,21 -42,8 +42,9 @@@ #define CEPH_FEATURE_UID (1<<0) #define CEPH_FEATURE_NOSRCADDR (1<<1) #define CEPH_FEATURE_MONCLOCKCHECK (1<<2) - #define CEPH_FEATURE_MONNAMES (1<<3) - - #define CEPH_FEATURE_SUPPORTED_MON CEPH_FEATURE_UID|CEPH_FEATURE_NOSRCADDR|\ - CEPH_FEATURE_MONCLOCKCHECK|\ - CEPH_FEATURE_MONNAMES - #define CEPH_FEATURE_REQUIRED_MON CEPH_FEATURE_UID - #define CEPH_FEATURE_SUPPORTED_MDS CEPH_FEATURE_UID|CEPH_FEATURE_NOSRCADDR|\ - CEPH_FEATURE_MONNAMES - #define CEPH_FEATURE_REQUIRED_MDS CEPH_FEATURE_UID - #define CEPH_FEATURE_SUPPORTED_OSD CEPH_FEATURE_UID|CEPH_FEATURE_NOSRCADDR|\ - CEPH_FEATURE_MONNAMES - #define CEPH_FEATURE_REQUIRED_OSD CEPH_FEATURE_UID - #define CEPH_FEATURE_SUPPORTED_CLIENT CEPH_FEATURE_NOSRCADDR|\ - CEPH_FEATURE_MONNAMES - #define CEPH_FEATURE_REQUIRED_CLIENT 0 + #define CEPH_FEATURE_FLOCK (1<<3) + #define CEPH_FEATURE_SUBSCRIBE2 (1<<4) ++#define CEPH_FEATURE_MONNAMES (1<<5) /* diff --cc src/mon/MonClient.cc index 53ca2dc2fee,91d33d4aeff..e0e798ef704 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@@ -118,8 -115,8 +118,8 @@@ int MonClient::get_monmap( dout(10) << "get_monmap" << dendl; Mutex::Locker l(monc_lock); - _sub_want("monmap", monmap.get_epoch()); + _sub_want("monmap", 0, 0); - if (cur_mon < 0) + if (cur_mon.empty()) _reopen_session(); while (want_monmap) @@@ -288,8 -266,8 +288,8 @@@ int MonClient::authenticate(double time return 0; } - _sub_want("monmap", monmap.get_epoch()); + _sub_want("monmap", monmap.get_epoch() ? monmap.get_epoch() + 1 : 0, 0); - if (cur_mon < 0) + if (cur_mon.empty()) _reopen_session(); utime_t until = g_clock.now(); @@@ -450,7 -429,7 +450,7 @@@ bool MonClient::ms_handle_reset(Connect void MonClient::_finish_hunting() { if (hunting) { - dout(0) << "found mon." << cur_mon << dendl; - dout(1) << "found mon" << cur_mon << dendl; ++ dout(1) << "found mon." << cur_mon << dendl; hunting = false; } } diff --cc src/mon/Monitor.cc index 15d9cff796c,68f0079c8d2..9ec38462226 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@@ -404,14 -400,14 +404,16 @@@ void Monitor::handle_forward(MForward * dout(0) << "forward from entity with insufficient caps! " << session->caps << dendl; } else { - - MonSession *s = new MonSession(m->client); - s->caps = m->client_caps; Connection *c = new Connection; + MonSession *s = new MonSession(m->msg->get_source_inst(), c); c->set_priv(s); + c->set_peer_addr(m->client.addr); + c->set_peer_type(m->client.name.type()); + s->caps = m->client_caps; + s->proxy_con = m->get_connection()->get(); + s->proxy_tid = m->tid; + PaxosServiceMessage *req = m->msg; m->msg = NULL; // so ~MForward doesn't delete it req->set_connection(c); @@@ -843,9 -840,9 +848,9 @@@ void Monitor::check_subs( void Monitor::check_sub(Subscription *sub) { - dout(0) << "check_sub monmap last " << sub->last << " have " << monmap->get_epoch() << dendl; - if (sub->last < monmap->get_epoch()) { + dout(0) << "check_sub monmap next " << sub->next << " have " << monmap->get_epoch() << dendl; + if (sub->next <= monmap->get_epoch()) { - send_latest_monmap(sub->session->inst); + send_latest_monmap(sub->session->con); if (sub->onetime) session_map.remove_sub(sub); else