From 08daaa47cc8be9f21d1cd8af5f3686be46b4c429 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 30 Apr 2009 15:24:43 -0700 Subject: [PATCH] uclient: clean up mount wrt osdmap, mdsmap --- src/client/Client.cc | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index d62f2c97813..c6ddd0a9fd5 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -120,8 +120,6 @@ Client::Client(Messenger *m, MonMap *mm) : timer(client_lock), client_lock("Clie last_tid = 0; unsafe_sync_write = 0; - mdsmap = 0; - cwd = NULL; // @@ -136,7 +134,8 @@ Client::Client(Messenger *m, MonMap *mm) : timer(client_lock), client_lock("Clie messenger = m; // osd interfaces - osdmap = new OSDMap(); // initially blank.. see mount() + osdmap = new OSDMap; // initially blank.. see mount() + mdsmap = new MDSMap; objecter = new Objecter(messenger, monmap, osdmap, client_lock); objecter->set_client_incarnation(0); // client always 0, for now. objectcacher = new ObjectCacher(objecter, client_lock, @@ -267,7 +266,6 @@ void Client::init() client_logger = new Logger(s, &client_logtype); } client_logger_lock.Unlock(); - } void Client::shutdown() @@ -1111,17 +1109,6 @@ void Client::handle_mds_map(MMDSMap* m) if (m->get_source().is_mds()) frommds = m->get_source().num(); - if (mdsmap == 0) { - mdsmap = new MDSMap; - - assert(m->get_source().is_mon()); - whoami = m->get_dest().num(); - messenger->reset_myname(entity_name_t::CLIENT(whoami)); - dout(1) << "handle_mds_map i am now " << m->get_dest() << dendl; - - mount_cond.Signal(); // mount might be waiting for this. - } - if (m->get_epoch() < mdsmap->get_epoch()) { dout(1) << "handle_mds_map epoch " << m->get_epoch() << " is older than our " << mdsmap->get_epoch() << dendl; @@ -2299,9 +2286,6 @@ int Client::mount() mounters++; while (signed_ticket.length() == 0 || - !mdsmap || - !osdmap || - osdmap->get_epoch() == 0 || (!itsme && !mounted)) // non-doers wait a little longer mount_cond.Wait(client_lock); @@ -2371,6 +2355,13 @@ void Client::handle_mount_ack(MClientMountAck* m) { dout(10) << "handle_mount_ack " << *m << dendl; + assert(m->get_source().is_mon()); + whoami = m->get_dest().num(); + messenger->reset_myname(entity_name_t::CLIENT(whoami)); + dout(1) << "handle_mount_ack i am now " << m->get_dest() << dendl; + + mount_cond.Signal(); // mount might be waiting for this. + signed_ticket = m->signed_ticket; bufferlist::iterator p = signed_ticket.begin(); ::decode(ticket, p); @@ -2513,10 +2504,6 @@ void Client::handle_unmount(Message* m) dout(1) << "handle_unmount got ack" << dendl; mounted = false; - - delete mdsmap; - mdsmap = 0; - mount_cond.Signal(); delete m; @@ -2540,7 +2527,7 @@ void Client::tick() utime_t now = g_clock.now(); - if (mdsmap) { + if (mdsmap->get_epoch()) { // renew caps? utime_t el = now - last_cap_renew; if (el > mdsmap->get_session_timeout() / 3.0) -- 2.47.3