From: Haomai Wang Date: Tue, 23 Dec 2014 10:38:24 +0000 (+0800) Subject: librados: only call watch_flush if necessary X-Git-Tag: v0.92~96^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=926a1b7468550e0c83bfa68bd45df1a6af599727;p=ceph.git librados: only call watch_flush if necessary Fix bug #10424 Signed-off-by: Haomai Wang --- diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index a5b89a07960b..a0b4f23441fa 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -282,9 +282,6 @@ int librados::RadosClient::connect() void librados::RadosClient::shutdown() { - // make sure watch callbacks are flushed - watch_flush(); - lock.Lock(); if (state == DISCONNECTED) { lock.Unlock(); @@ -301,8 +298,11 @@ void librados::RadosClient::shutdown() instance_id = 0; timer.shutdown(); // will drop+retake lock lock.Unlock(); - if (need_objecter) + if (need_objecter) { + // make sure watch callbacks are flushed + watch_flush(); objecter->shutdown(); + } monclient.shutdown(); if (messenger) { messenger->shutdown();