blob: 3dd4790a52f73070039cd6c9d2175e7ef12d7564 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
From: Felix W. (65278) <felix@zeynix.de>
Date: Fri, 11 Sep 2026 15:30:00 +0200
Subject: [PATCH] ceph-20.2.4: fix CephKeyServer gentoo patch
ceph-20.2.1-boost-1.90-intrusive_ptr_fixes.patch introduces fixes
around boost 1.90 and intrusive_ptr. Meanwhile, in ceph 20.2.4,
CephKeyServer now has an intrusive_ptr reference to CephContext.
This does not work, because clang++ has no idea how to find the
helper functions in ceph::common::CephContext. So while templating
is fine, finding intrusive_ptr_{add_ref,release} can't work.
Frankly, I have no idea how g++ does it and it should not work.
I've made the namespace of CephContext explicit and included the
relevant header.
Index: ceph-20.2.4/src/auth/cephx/CephxKeyServer.h
===================================================================
--- ceph-20.2.4.orig/src/auth/cephx/CephxKeyServer.h
+++ ceph-20.2.4/src/auth/cephx/CephxKeyServer.h
@@ -20,6 +20,8 @@
#include "auth/KeyRing.h"
#include "CephxProtocol.h"
#include "common/ceph_mutex.h"
+#include "common/ceph_context.h"
+
#include "include/common_fwd.h"
namespace ceph { class Formatter; }
@@ -152,9 +154,8 @@ struct KeyServerData {
WRITE_CLASS_ENCODER(KeyServerData)
WRITE_CLASS_ENCODER(KeyServerData::Incremental)
-
class KeyServer : public KeyStore {
- boost::intrusive_ptr<CephContext> kscct;
+ boost::intrusive_ptr<ceph::common::CephContext> kscct;
KeyServerData data;
std::map<EntityName, CryptoKey> used_pending_keys;
mutable ceph::mutex lock;
|