]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
c3: mount through MonClient
authorYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 1 May 2009 00:08:00 +0000 (17:08 -0700)
committerSage Weil <sage@newdream.net>
Mon, 11 May 2009 22:29:14 +0000 (15:29 -0700)
src/s3/c3.cc

index 04d32bd166bea10848a98fee4698af51499c50fd..4b03238cf33991585b95e2d462ae28ba363c41a6 100644 (file)
@@ -116,24 +116,25 @@ public:
 
 bool C3::init()
 {
-  mc = new MonClient(&monmap, messenger);
+  mc = new MonClient(&monmap, NULL);
 
-  MonMap *mm = mc->get_monmap();
   // get monmap
-  if (!mm)
+  if (!mc->get_monmap())
     return false;
 
   rank.bind();
   cout << "starting c3." << g_conf.id
        << " at " << rank.get_rank_addr() 
-       << " fsid " << mm->get_fsid()
+       << " fsid " << monmap.get_fsid()
        << std::endl;
 
-  messenger = rank.register_entity(entity_name_t::MDS(-1));
+  messenger = rank.register_entity(entity_name_t::CLIENT(-1));
   assert_warn(messenger);
   if (!messenger)
     return false;
 
+  mc->set_messenger(messenger);
+
   rank.set_policy(entity_name_t::TYPE_MON, Rank::Policy::lossy_fail_after(1.0));
   rank.set_policy(entity_name_t::TYPE_MDS, Rank::Policy::lossless());
   rank.set_policy(entity_name_t::TYPE_OSD, Rank::Policy::lossless());
@@ -141,16 +142,20 @@ bool C3::init()
 
   rank.start(1);
 
-  objecter = new Objecter(messenger, mm, &osdmap, lock);
+  mc->mount(g_conf.client_mount_timeout);
+
+  objecter = new Objecter(messenger, &monmap, &osdmap, lock);
   if (!objecter)
     return false;
 
   lock.Lock();
-  messenger->set_dispatcher(this);
+  mc->link_dispatcher(this);
 
   objecter->set_client_incarnation(0);
   objecter->init();
 
+  objecter->set_client_incarnation(0);
+
   lock.Unlock();
 
   return true;
@@ -237,7 +242,7 @@ void C3::write()
   char buf[len];
 
   for (size_t i=0; i<len; i++)
-    buf[i] = i%10;
+    buf[i] = i%30;
 
   bl.append(buf, len);