From 6b16ab07824801b4c065bb9d84a7ee154480d9b5 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 11 Jun 2009 09:49:46 -0700 Subject: [PATCH] librados: make get pool stats work --- src/librados.cc | 4 ++++ src/osdc/Objecter.cc | 3 +++ src/osdc/Objecter.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/librados.cc b/src/librados.cc index 68211a8d729c1..989f74cb0565e 100644 --- a/src/librados.cc +++ b/src/librados.cc @@ -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; diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index f8c2418e3b33b..afa7d4192db85 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -636,6 +636,7 @@ void Objecter::get_pool_stats(vector& pools, map *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; } diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 1baaf9819dddf..1177091da91fb 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -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& pools, map *result, Context *onfinish); -- 2.39.5