From 83fbd116e20809fc658cc37744f20fe580da6ef7 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 25 Sep 2018 16:47:57 +0800 Subject: [PATCH] auth: switch from Mutex to ceph::mutex 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 --- src/auth/AuthAuthorizeHandler.cc | 3 +-- src/auth/AuthAuthorizeHandler.h | 7 ++++--- src/auth/cephx/CephxKeyServer.cc | 32 ++++++++++++++++---------------- src/auth/cephx/CephxKeyServer.h | 26 +++++++++++++------------- src/mon/AuthMonitor.cc | 2 +- 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/auth/AuthAuthorizeHandler.cc b/src/auth/AuthAuthorizeHandler.cc index e6e5eb997a62d..b4efe7bfbaaa9 100644 --- a/src/auth/AuthAuthorizeHandler.cc +++ b/src/auth/AuthAuthorizeHandler.cc @@ -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::iterator iter = m_authorizers.find(protocol); if (iter != m_authorizers.end()) return iter->second; diff --git a/src/auth/AuthAuthorizeHandler.h b/src/auth/AuthAuthorizeHandler.h index d2de7e1964e33..45778836e3600 100644 --- a/src/auth/AuthAuthorizeHandler.h +++ b/src/auth/AuthAuthorizeHandler.h @@ -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 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(); diff --git a/src/auth/cephx/CephxKeyServer.cc b/src/auth/cephx/CephxKeyServer.cc index 51b7b24b7e21c..cba7be3ce1348 100644 --- a/src/auth/cephx/CephxKeyServer.cc +++ b/src/auth/cephx/CephxKeyServer.cc @@ -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::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::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); } diff --git a/src/auth/cephx/CephxKeyServer.h b/src/auth/cephx/CephxKeyServer.h index 80a3aa927226b..0e61735144be8 100644 --- a/src/auth/cephx/CephxKeyServer.h +++ b/src/auth/cephx/CephxKeyServer.h @@ -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::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; diff --git a/src/mon/AuthMonitor.cc b/src/mon/AuthMonitor.cc index 2be587b5cbb87..4bbcf0c4a07fe 100644 --- a/src/mon/AuthMonitor.cc +++ b/src/mon/AuthMonitor.cc @@ -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; -- 2.39.5