From 6b58c8b0c82b6784fb727acdc24472398624d69f Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Tue, 12 Apr 2022 21:48:14 +0800 Subject: [PATCH] crimson/os/seastore/EPM: use DEVICE_ID_GLOBAL_MAX for devices Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/extent_placement_manager.h | 4 ++-- src/crimson/os/seastore/seastore_types.h | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 944232afe6709..d5b66ea42b6ce 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -86,7 +86,7 @@ private: class ExtentPlacementManager { public: ExtentPlacementManager() { - devices_by_id.resize(DEVICE_ID_MAX, nullptr); + devices_by_id.resize(DEVICE_ID_GLOBAL_MAX, nullptr); } void init_ool_writers(SegmentProvider &sp, SegmentSeqAllocator &ssa) { @@ -214,7 +214,7 @@ public: }); }).safe_then([this] { devices_by_id.clear(); - devices_by_id.resize(DEVICE_ID_MAX, nullptr); + devices_by_id.resize(DEVICE_ID_GLOBAL_MAX, nullptr); primary_device = nullptr; }); } diff --git a/src/crimson/os/seastore/seastore_types.h b/src/crimson/os/seastore/seastore_types.h index d54add7c7c949..a45760ad47505 100644 --- a/src/crimson/os/seastore/seastore_types.h +++ b/src/crimson/os/seastore/seastore_types.h @@ -62,8 +62,10 @@ constexpr uint16_t DEVICE_ID_LEN_BITS = 8; // segment ids without a device id encapsulated using device_segment_id_t = uint32_t; -constexpr device_id_t DEVICE_ID_MAX = - (std::numeric_limits::max() >> +constexpr device_id_t DEVICE_ID_GLOBAL_MAX = + std::numeric_limits::max(); +constexpr device_id_t DEVICE_ID_MAX = // the max value regardless of addrs_type_t prefix + (DEVICE_ID_GLOBAL_MAX >> (std::numeric_limits::digits - DEVICE_ID_LEN_BITS + 1)); constexpr device_id_t DEVICE_ID_NULL = DEVICE_ID_MAX; constexpr device_id_t DEVICE_ID_RECORD_RELATIVE = DEVICE_ID_MAX - 1; -- 2.39.5