From: Haomai Wang Date: Mon, 6 Feb 2017 06:45:21 +0000 (+0800) Subject: msg/async: fix missing unlock when already bind X-Git-Tag: v12.0.1~337^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F13267%2Fhead;p=ceph.git msg/async: fix missing unlock when already bind Signed-off-by: Haomai Wang --- diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index 506b71be471f..3200f5e539a3 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -393,18 +393,16 @@ int AsyncMessenger::rebind(const set& avoid_ports) int AsyncMessenger::client_bind(const entity_addr_t &bind_addr) { - lock.Lock(); + Mutex::Locker l(lock); if (did_bind) { assert(my_inst.addr == bind_addr); return 0; } if (started) { ldout(cct, 10) << __func__ << " already started" << dendl; - lock.Unlock(); return -1; } ldout(cct, 10) << __func__ << " " << bind_addr << dendl; - lock.Unlock(); set_myaddr(bind_addr); return 0; diff --git a/src/msg/simple/SimpleMessenger.cc b/src/msg/simple/SimpleMessenger.cc index 8897f2287bc1..600f26c3f1c2 100644 --- a/src/msg/simple/SimpleMessenger.cc +++ b/src/msg/simple/SimpleMessenger.cc @@ -309,19 +309,16 @@ int SimpleMessenger::rebind(const set& avoid_ports) int SimpleMessenger::client_bind(const entity_addr_t &bind_addr) { - lock.Lock(); + Mutex::Locker l(lock); if (did_bind) { assert(my_inst.addr == bind_addr); - lock.Unlock(); return 0; } if (started) { ldout(cct,10) << "rank.bind already started" << dendl; - lock.Unlock(); return -1; } ldout(cct,10) << "rank.bind " << bind_addr << dendl; - lock.Unlock(); set_myaddr(bind_addr); return 0;