]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
radosgw, encryption: Now only once attempt to load plugin if it fails.
authorAdam Kupczyk <akupczyk@mirantis.com>
Thu, 30 Mar 2017 13:00:22 +0000 (15:00 +0200)
committerAdam Kupczyk <akupczyk@mirantis.com>
Wed, 5 Apr 2017 16:31:58 +0000 (18:31 +0200)
Signed-off-by: Adam Kupczyk <akupczyk@mirantis.com>
src/rgw/rgw_crypt.cc

index cde2e4788724b1e218d714339d9424b308198a60..727ef3a7990d7308a35859fd2534249518a6b5b4 100644 (file)
@@ -359,7 +359,14 @@ public:
                      const unsigned char (&key)[AES_256_KEYSIZE],
                      bool encrypt)
   {
-    CryptoAccelRef crypto_accel = get_crypto_accel(cct);
+    static std::atomic<bool> failed_to_get_crypto(false);
+    CryptoAccelRef crypto_accel;
+    if (! failed_to_get_crypto.load())
+    {
+      crypto_accel = get_crypto_accel(cct);
+      if (!crypto_accel)
+        failed_to_get_crypto = true;
+    }
     bool result = true;
     unsigned char iv[AES_256_IVSIZE];
     for (size_t offset = 0; result && (offset < size); offset += CHUNK_SIZE) {