auth: switch from Mutex to ceph::mutex 24263/head
authorKefu Chai <kchai@redhat.com>
Tue, 25 Sep 2018 08:47:57 +0000 (16:47 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 27 Sep 2018 13:34:05 +0000 (21:34 +0800)
to be aligned with our direction to use std::mutex or its wrapper. see
https://trello.com/c/aUSezBRH/365-cephmutex-etc-for-release-builds

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/auth/AuthAuthorizeHandler.cc
src/auth/AuthAuthorizeHandler.h
src/auth/cephx/CephxKeyServer.cc
src/auth/cephx/CephxKeyServer.h
src/mon/AuthMonitor.cc

index e6e5eb997a62def79af6e8be8fc3b304b1c1cb76..b4efe7bfbaaa9f37547c1f44413f39fe62f521c0 100644 (file)
@@ -15,7 +15,6 @@
 #include "AuthAuthorizeHandler.h"
 #include "cephx/CephxAuthorizeHandler.h"
 #include "none/AuthNoneAuthorizeHandler.h"
-#include "common/Mutex.h"
 
 AuthAuthorizeHandler *AuthAuthorizeHandlerRegistry::get_handler(int protocol)
 {
@@ -23,7 +22,7 @@ AuthAuthorizeHandler *AuthAuthorizeHandlerRegistry::get_handler(int protocol)
     return NULL;
   }
   
-  Mutex::Locker l(m_lock);
+  std::scoped_lock l{m_lock};
   map<int,AuthAuthorizeHandler*>::iterator iter = m_authorizers.find(protocol);
   if (iter != m_authorizers.end())
     return iter->second;
index d2de7e1964e3381a64f7db294ebfd7b54e4aea2c..45778836e36004d35c380076efa47a8e59592bb0 100644 (file)
@@ -18,7 +18,7 @@
 #include "Auth.h"
 #include "AuthMethodList.h"
 #include "include/types.h"
-#include "common/Mutex.h"
+#include "common/ceph_mutex.h"
 // Different classes of session crypto handling
 
 #define SESSION_CRYPTO_NONE 0
@@ -39,13 +39,14 @@ struct AuthAuthorizeHandler {
 };
 
 class AuthAuthorizeHandlerRegistry {
-  Mutex m_lock;
+  ceph::mutex m_lock;
   map<int,AuthAuthorizeHandler*> m_authorizers;
   AuthMethodList supported;
 
 public:
   AuthAuthorizeHandlerRegistry(CephContext *cct_, const std::string &methods)
-    : m_lock("AuthAuthorizeHandlerRegistry::m_lock"), supported(cct_, methods)
+    : m_lock{ceph::make_mutex("AuthAuthorizeHandlerRegistry::m_lock")},
+      supported{cct_, methods}
   {}
   ~AuthAuthorizeHandlerRegistry();
   
index 51b7b24b7e21c0e4fe3478d5ab307083894dc854..cba7be3ce134820fbff4ab277d83986322c9d073 100644 (file)
@@ -134,13 +134,13 @@ bool KeyServerData::get_caps(CephContext *cct, const EntityName& name,
 KeyServer::KeyServer(CephContext *cct_, KeyRing *extra_secrets)
   : cct(cct_),
     data(extra_secrets),
-    lock("KeyServer::lock")
+    lock{ceph::make_mutex("KeyServer::lock")}
 {
 }
 
 int KeyServer::start_server()
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   _check_rotating_secrets();
   _dump_rotating_secrets();
@@ -215,20 +215,20 @@ int KeyServer::_rotate_secret(uint32_t service_id)
 
 bool KeyServer::get_secret(const EntityName& name, CryptoKey& secret) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
   return data.get_secret(name, secret);
 }
 
 bool KeyServer::get_auth(const EntityName& name, EntityAuth& auth) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
   return data.get_auth(name, auth);
 }
 
 bool KeyServer::get_caps(const EntityName& name, const string& type,
              AuthCapsInfo& caps_info) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   return data.get_caps(cct, name, type, caps_info);
 }
@@ -236,7 +236,7 @@ bool KeyServer::get_caps(const EntityName& name, const string& type,
 bool KeyServer::get_service_secret(uint32_t service_id,
              ExpiringCryptoKey& secret, uint64_t& secret_id) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   return data.get_service_secret(cct, service_id, secret, secret_id);
 }
@@ -244,7 +244,7 @@ bool KeyServer::get_service_secret(uint32_t service_id,
 bool KeyServer::get_service_secret(uint32_t service_id,
                CryptoKey& secret, uint64_t& secret_id) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   return data.get_service_secret(cct, service_id, secret, secret_id);
 }
@@ -252,7 +252,7 @@ bool KeyServer::get_service_secret(uint32_t service_id,
 bool KeyServer::get_service_secret(uint32_t service_id,
                uint64_t secret_id, CryptoKey& secret) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   return data.get_service_secret(cct, service_id, secret_id, secret);
 }
@@ -277,7 +277,7 @@ bool KeyServer::generate_secret(EntityName& name, CryptoKey& secret)
   if (!generate_secret(secret))
     return false;
 
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   EntityAuth auth;
   auth.key = secret;
@@ -289,14 +289,14 @@ bool KeyServer::generate_secret(EntityName& name, CryptoKey& secret)
 
 bool KeyServer::contains(const EntityName& name) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   return data.contains(name);
 }
 
 int KeyServer::encode_secrets(Formatter *f, stringstream *ds) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
   map<EntityName, EntityAuth>::const_iterator mapiter = data.secrets_begin();
 
   if (mapiter == data.secrets_end())
@@ -363,7 +363,7 @@ void KeyServer::encode_plaintext(bufferlist &bl)
 
 bool KeyServer::updated_rotating(bufferlist& rotating_bl, version_t& rotating_ver)
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   _check_rotating_secrets(); 
 
@@ -380,7 +380,7 @@ bool KeyServer::updated_rotating(bufferlist& rotating_bl, version_t& rotating_ve
 bool KeyServer::get_rotating_encrypted(const EntityName& name,
        bufferlist& enc_bl) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   map<EntityName, EntityAuth>::const_iterator mapiter = data.find_name(name);
   if (mapiter == data.secrets_end())
@@ -413,7 +413,7 @@ bool KeyServer::_get_service_caps(const EntityName& name, uint32_t service_id,
 bool KeyServer::get_service_caps(const EntityName& name, uint32_t service_id,
                                 AuthCapsInfo& caps_info) const
 {
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
   return _get_service_caps(name, service_id, caps_info);
 }
 
@@ -444,7 +444,7 @@ int KeyServer::build_session_auth_info(uint32_t service_id, CephXServiceTicketIn
     return -EPERM;
   }
 
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
 
   return _build_session_auth_info(service_id, auth_ticket_info, info);
 }
@@ -455,7 +455,7 @@ int KeyServer::build_session_auth_info(uint32_t service_id, CephXServiceTicketIn
   info.service_secret = service_secret;
   info.secret_id = secret_id;
 
-  Mutex::Locker l(lock);
+  std::scoped_lock l{lock};
   return _build_session_auth_info(service_id, auth_ticket_info, info);
 }
 
index 80a3aa927226b015b9b200728105940594d05203..0e61735144be8a8b79e56b4ea11a1ba5a26fc6cb 100644 (file)
@@ -18,7 +18,7 @@
 #include "auth/KeyRing.h"
 #include "CephxProtocol.h"
 #include "CephxKeyServer.h"
-#include "common/Mutex.h"
+#include "common/ceph_mutex.h"
 
 class CephContext;
 
@@ -193,7 +193,7 @@ WRITE_CLASS_ENCODER(KeyServerData::Incremental)
 class KeyServer : public KeyStore {
   CephContext *cct;
   KeyServerData data;
-  mutable Mutex lock;
+  mutable ceph::mutex lock;
 
   int _rotate_secret(uint32_t service_id);
   bool _check_rotating_secrets();
@@ -232,7 +232,7 @@ public:
     encode(data, bl);
   }
   void decode(bufferlist::const_iterator& bl) {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     using ceph::decode;
     decode(data, bl);
   }
@@ -244,31 +244,31 @@ public:
     return encode_secrets(NULL, &ds);
   }
   version_t get_ver() const {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     return data.version;    
   }
 
   void clear_secrets() {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     data.clear_secrets();
   }
 
   void apply_data_incremental(KeyServerData::Incremental& inc) {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     data.apply_incremental(inc);
   }
   void set_ver(version_t ver) {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     data.version = ver;
   }
 
   void add_auth(const EntityName& name, EntityAuth& auth) {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     data.add_auth(name, auth);
   }
 
   void remove_secret(const EntityName& name) {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     data.remove_secret(name);
   }
 
@@ -277,16 +277,16 @@ public:
     return (b != data.secrets_end());
   }
   int get_num_secrets() {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     return data.secrets.size();
   }
 
   void clone_to(KeyServerData& dst) const {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     dst = data;
   }
   void export_keyring(KeyRing& keyring) {
-    Mutex::Locker l(lock);
+    std::scoped_lock l{lock};
     for (map<EntityName, EntityAuth>::iterator p = data.secrets.begin();
         p != data.secrets.end();
         ++p) {
@@ -298,7 +298,7 @@ public:
 
   bool get_rotating_encrypted(const EntityName& name, bufferlist& enc_bl) const;
 
-  Mutex& get_lock() const { return lock; }
+  ceph::mutex& get_lock() const { return lock; }
   bool get_service_caps(const EntityName& name, uint32_t service_id,
                        AuthCapsInfo& caps) const;
 
index 2be587b5cbb8763d86669672b81007172277cb97..4bbcf0c4a07fe26c4599b6a4b17f2740f5b810ac 100644 (file)
@@ -386,7 +386,7 @@ void AuthMonitor::encode_full(MonitorDBStore::TransactionRef t)
   ceph_assert(get_last_committed() == version);
 
   bufferlist full_bl;
-  Mutex::Locker l(mon->key_server.get_lock());
+  std::scoped_lock l{mon->key_server.get_lock()};
   dout(20) << __func__ << " key server has "
            << (mon->key_server.has_secrets() ? "" : "no ")
            << "secrets!" << dendl;