summaryrefslogtreecommitdiff
path: root/sys-cluster/ceph/files/ceph-19.2.2-rbd-make-enums-statically-castable.patch
blob: 247b26ad70380de7726cf28bf2166eef236c0eea (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
https://github.com/ceph/ceph/commit/a4b9bf76a2c04daf25799ae2785a700d204ce20c

From a4b9bf76a2c04daf25799ae2785a700d204ce20c Mon Sep 17 00:00:00 2001
From: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
Date: Thu, 1 Jan 2026 13:32:07 +0100
Subject: [PATCH] rbd: make enums statically castable

Fix the following compiler error:

in-class initializer for static data member is not a constant expression

Co-authored-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>

diff --git a/src/cls/rbd/cls_rbd_types.h b/src/cls/rbd/cls_rbd_types.h
index cd7cad2e88d..c81d49bb6b3 100644
--- a/src/cls/rbd/cls_rbd_types.h
+++ b/src/cls/rbd/cls_rbd_types.h
@@ -423,7 +423,7 @@ struct GroupSpec {
 
 WRITE_CLASS_ENCODER(GroupSpec);
 
-enum SnapshotNamespaceType {
+enum SnapshotNamespaceType : uint32_t {
   SNAPSHOT_NAMESPACE_TYPE_USER   = 0,
   SNAPSHOT_NAMESPACE_TYPE_GROUP  = 1,
   SNAPSHOT_NAMESPACE_TYPE_TRASH  = 2,
diff --git a/src/librbd/journal/Types.h b/src/librbd/journal/Types.h
index a7d2f4ef446..544a1aca7bd 100644
--- a/src/librbd/journal/Types.h
+++ b/src/librbd/journal/Types.h
@@ -25,7 +25,7 @@ class Formatter;
 namespace librbd {
 namespace journal {
 
-enum EventType {
+enum EventType : uint32_t {
   EVENT_TYPE_AIO_DISCARD           = 0,
   EVENT_TYPE_AIO_WRITE             = 1,
   EVENT_TYPE_AIO_FLUSH             = 2,
@@ -464,7 +464,7 @@ private:
 
 // Journal Client data structures
 
-enum ClientMetaType {
+enum ClientMetaType : uint32_t {
   IMAGE_CLIENT_META_TYPE       = 0,
   MIRROR_PEER_CLIENT_META_TYPE = 1,
   CLI_CLIENT_META_TYPE         = 2
diff --git a/src/librbd/mirroring_watcher/Types.h b/src/librbd/mirroring_watcher/Types.h
index c837e208d3e..1d0c6b8b46b 100644
--- a/src/librbd/mirroring_watcher/Types.h
+++ b/src/librbd/mirroring_watcher/Types.h
@@ -18,7 +18,7 @@ namespace ceph { class Formatter; }
 namespace librbd {
 namespace mirroring_watcher {
 
-enum NotifyOp {
+enum NotifyOp : uint32_t {
   NOTIFY_OP_MODE_UPDATED  = 0,
   NOTIFY_OP_IMAGE_UPDATED = 1
 };
diff --git a/src/librbd/trash_watcher/Types.h b/src/librbd/trash_watcher/Types.h
index ba6cd9ff2f8..b3b42ba2163 100644
--- a/src/librbd/trash_watcher/Types.h
+++ b/src/librbd/trash_watcher/Types.h
@@ -17,7 +17,7 @@
 namespace librbd {
 namespace trash_watcher {
 
-enum NotifyOp {
+enum NotifyOp : uint32_t {
   NOTIFY_OP_IMAGE_ADDED = 0,
   NOTIFY_OP_IMAGE_REMOVED = 1
 };
diff --git a/src/rbd_replay/ActionTypes.h b/src/rbd_replay/ActionTypes.h
index 585d756ea9d..e4103d1dcde 100644
--- a/src/rbd_replay/ActionTypes.h
+++ b/src/rbd_replay/ActionTypes.h
@@ -61,7 +61,7 @@ WRITE_CLASS_ENCODER(Dependency);
 
 typedef std::vector<Dependency> Dependencies;
 
-enum ActionType {
+enum ActionType : uint8_t {
   ACTION_TYPE_START_THREAD    = 0,
   ACTION_TYPE_STOP_THREAD     = 1,
   ACTION_TYPE_READ            = 2,
diff --git a/src/tools/rbd_mirror/image_map/Types.h b/src/tools/rbd_mirror/image_map/Types.h
index 871bc5ffffa..77efda17dc3 100644
--- a/src/tools/rbd_mirror/image_map/Types.h
+++ b/src/tools/rbd_mirror/image_map/Types.h
@@ -60,7 +60,7 @@ typedef std::vector<std::string> InstanceIds;
 typedef std::set<std::string> GlobalImageIds;
 typedef std::map<std::string, ActionType> ImageActionTypes;
 
-enum PolicyMetaType {
+enum PolicyMetaType : uint32_t {
   POLICY_META_TYPE_NONE = 0,
 };
 
diff --git a/src/tools/rbd_mirror/instance_watcher/Types.h b/src/tools/rbd_mirror/instance_watcher/Types.h
index 6bb430d36aa..549113a2853 100644
--- a/src/tools/rbd_mirror/instance_watcher/Types.h
+++ b/src/tools/rbd_mirror/instance_watcher/Types.h
@@ -18,7 +18,7 @@ namespace rbd {
 namespace mirror {
 namespace instance_watcher {
 
-enum NotifyOp {
+enum NotifyOp : uint32_t {
   NOTIFY_OP_IMAGE_ACQUIRE      = 0,
   NOTIFY_OP_IMAGE_RELEASE      = 1,
   NOTIFY_OP_PEER_IMAGE_REMOVED = 2,
diff --git a/src/tools/rbd_mirror/leader_watcher/Types.h b/src/tools/rbd_mirror/leader_watcher/Types.h
index 0e987c4eb04..2f20e451843 100644
--- a/src/tools/rbd_mirror/leader_watcher/Types.h
+++ b/src/tools/rbd_mirror/leader_watcher/Types.h
@@ -35,7 +35,7 @@ struct Listener {
   virtual void handle_instances_removed(const InstanceIds& instance_ids) = 0;
 };
 
-enum NotifyOp {
+enum NotifyOp : uint32_t {
   NOTIFY_OP_HEARTBEAT        = 0,
   NOTIFY_OP_LOCK_ACQUIRED    = 1,
   NOTIFY_OP_LOCK_RELEASED    = 2,
-- 
2.49.1