From 12eb797fb846ff15dfd166e4d6585ef5a196d413 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 16 Nov 2012 17:36:16 -0800 Subject: [PATCH] client: fix lock leak in lazio_*() failure paths CID 743400 (#1 of 1): Missing unlock (LOCK) At (5): Returning without unlocking "this->client_lock._m". CID 743399 (#1 of 1): Missing unlock (LOCK) At (5): Returning without unlocking "this->client_lock._m". Signed-off-by: Sage Weil --- src/client/Client.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 5e38ef4096624..8d4a5ac63d4d0 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -6017,7 +6017,7 @@ int64_t Client::drop_caches() int Client::lazyio_propogate(int fd, loff_t offset, size_t count) { - client_lock.Lock(); + Mutex::Locker l(client_lock); ldout(cct, 3) << "op: client->lazyio_propogate(" << fd << ", " << offset << ", " << count << ")" << dendl; @@ -6028,13 +6028,12 @@ int Client::lazyio_propogate(int fd, loff_t offset, size_t count) // for now _fsync(f, true); - client_lock.Unlock(); return 0; } int Client::lazyio_synchronize(int fd, loff_t offset, size_t count) { - client_lock.Lock(); + Mutex::Locker l(client_lock); ldout(cct, 3) << "op: client->lazyio_synchronize(" << fd << ", " << offset << ", " << count << ")" << dendl; @@ -6045,8 +6044,6 @@ int Client::lazyio_synchronize(int fd, loff_t offset, size_t count) _fsync(f, true); _release(in); - - client_lock.Unlock(); return 0; } -- 2.39.5