]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: make get pool stats work
authorSage Weil <sage@newdream.net>
Thu, 11 Jun 2009 16:49:46 +0000 (09:49 -0700)
committerSage Weil <sage@newdream.net>
Thu, 11 Jun 2009 16:59:24 +0000 (09:59 -0700)
src/librados.cc
src/osdc/Objecter.cc
src/osdc/Objecter.h

index 68211a8d729c1c01c122d27d408a2fffd648d2c8..989f74cb0565e69ce971e36b519eaa17398d97b8 100644 (file)
@@ -361,6 +361,10 @@ bool RadosClient::_dispatch(Message *m)
     objecter->handle_osd_map((MOSDMap*)m);
     cond.Signal();
     break;
+  case MSG_GETPOOLSTATSREPLY:
+    objecter->handle_get_pool_stats_reply((MGetPoolStatsReply*)m);
+    break;
+
   case CEPH_MSG_MDS_MAP:
     break;
 
index f8c2418e3b33bfaa7bd5f7d523f833f110b638e8..afa7d4192db85616e0937c019801d1fd2bdabbc0 100644 (file)
@@ -636,6 +636,7 @@ void Objecter::get_pool_stats(vector<string>& pools, map<string,pool_stat_t> *re
   PoolStatOp *op = new PoolStatOp;
   op->tid = ++last_tid;
   op->pools = pools;
+  op->pool_stats = result;
   op->onfinish = onfinish;
   op_poolstat[op->tid] = op;
 
@@ -657,6 +658,7 @@ void Objecter::handle_get_pool_stats_reply(MGetPoolStatsReply *m)
 
   if (op_poolstat.count(tid)) {
     PoolStatOp *op = op_poolstat[tid];
+    dout(10) << "have request " << tid << " at " << op << dendl;
     *op->pool_stats = m->pool_stats;
     op->onfinish->finish(0);
     delete op->onfinish;
@@ -665,6 +667,7 @@ void Objecter::handle_get_pool_stats_reply(MGetPoolStatsReply *m)
   } else {
     dout(10) << "unknown request " << tid << dendl;
   } 
+  dout(10) << "done" << dendl;
   delete m;
 }
 
index 1baaf9819dddf9532252c9dc16e5a8363219c2e5..1177091da91fb74b91816bd4fc93c8a3047c35cb 100644 (file)
@@ -457,8 +457,8 @@ class Objecter {
   // pool stats
 private:
   void poolstat_submit(PoolStatOp *op);
-  void handle_get_pool_stats_reply(MGetPoolStatsReply *m);
 public:
+  void handle_get_pool_stats_reply(MGetPoolStatsReply *m);
   void get_pool_stats(vector<string>& pools, map<string,pool_stat_t> *result,
                      Context *onfinish);