diff options
author | Alexandre Oliva <oliva@lsd.ic.unicamp.br> | 2012-02-21 07:10:22 -0200 |
---|---|---|
committer | Sage Weil <sage.weil@dreamhost.com> | 2012-02-22 21:08:19 -0800 |
commit | 26b5675301cceb34641e58c70cd5295c6e1f3854 (patch) | |
tree | 2e5e1b24081c59b0ba7f0c557550d19b8cfafec0 | |
parent | 761ecc69c24856b15531c92b69b1c73c5cc81bfc (diff) | |
download | ceph-26b5675301cceb34641e58c70cd5295c6e1f3854.tar.gz |
Fix ceph-mds --journal-reset
Complete configuration initialization for special actions, and
hold Resetter lock while running reset.
Signed-off-by: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
-rw-r--r-- | src/ceph_mds.cc | 1 | ||||
-rw-r--r-- | src/mds/Resetter.cc | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/ceph_mds.cc b/src/ceph_mds.cc index 657ace69b1c..65c0339f9b3 100644 --- a/src/ceph_mds.cc +++ b/src/ceph_mds.cc @@ -68,6 +68,7 @@ void usage() static int do_cmds_special_action(const std::string &action, const std::string &dump_file, int rank) { + common_init_finish(g_ceph_context); SimpleMessenger *messenger = new SimpleMessenger(g_ceph_context); int r = messenger->bind(g_conf->public_addr, getpid()); if (r < 0) diff --git a/src/mds/Resetter.cc b/src/mds/Resetter.cc index a10845cd95a..f7598817a9f 100644 --- a/src/mds/Resetter.cc +++ b/src/mds/Resetter.cc @@ -83,6 +83,7 @@ void Resetter::reset() bool done; int r; + this->lock.Lock(); lock.Lock(); journaler->recover(new C_SafeCond(&lock, &cond, &done, &r)); while (!done) @@ -142,5 +143,6 @@ void Resetter::reset() cout << "done" << std::endl; + this->lock.Unlock(); shutdown(); } |