]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seasotre/segment_manager_group: ensure the types of devices are same
authorZhang Song <zhangsong325@gmail.com>
Wed, 1 Mar 2023 10:19:54 +0000 (18:19 +0800)
committerZhang Song <zhangsong325@gmail.com>
Wed, 15 Mar 2023 01:22:33 +0000 (09:22 +0800)
Signed-off-by: Zhang Song <zhangsong325@gmail.com>
src/crimson/os/seastore/segment_manager_group.h

index 9a5729515b8db8ad037d4f45b41a3241a5ee9d2a..bd5af9601a5673657fcbc7d84f10f72d751868a9 100644 (file)
@@ -35,6 +35,11 @@ public:
   void add_segment_manager(SegmentManager* segment_manager) {
     auto device_id = segment_manager->get_device_id();
     ceph_assert(!has_device(device_id));
+    if (!device_ids.empty()) {
+      auto existing_id = *device_ids.begin();
+      ceph_assert(segment_managers[existing_id]->get_device_type()
+                  == segment_manager->get_device_type());
+    }
     segment_managers[device_id] = segment_manager;
     device_ids.insert(device_id);
   }