From: Greg Farnum Date: Wed, 29 Jul 2009 01:22:00 +0000 (-0700) Subject: libceph: add a check in ceph_deinitialize to prevent badness on multiple calls. X-Git-Tag: v0.12~68 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=923bc9a4c8d31df6128dcc4514bb5bf17c1d1e5e;p=ceph.git libceph: add a check in ceph_deinitialize to prevent badness on multiple calls. --- diff --git a/src/client/libceph.cc b/src/client/libceph.cc index 1144b273ae4a..5aa8d5190faa 100644 --- a/src/client/libceph.cc +++ b/src/client/libceph.cc @@ -21,7 +21,8 @@ static MonClient *monclient = NULL; static SimpleMessenger *rank = NULL; extern "C" int ceph_initialize(int argc, const char **argv) -{ ceph_client_mutex.Lock(); +{ + ceph_client_mutex.Lock(); if (!client_initialized) { //create everything to start a client vector args; @@ -57,13 +58,15 @@ extern "C" int ceph_initialize(int argc, const char **argv) extern "C" void ceph_deinitialize() { ceph_client_mutex.Lock(); - client->unmount(); - client->shutdown(); - delete client; - rank->wait(); - delete rank; - delete monclient; - --client_initialized; + if(client_initialized) { + client->unmount(); + client->shutdown(); + delete client; + rank->wait(); + delete rank; + delete monclient; + --client_initialized; + } ceph_client_mutex.Unlock(); }