From: Yingxin Cheng Date: Tue, 12 Apr 2022 13:48:14 +0000 (+0800) Subject: crimson/os/seastore/EPM: use DEVICE_ID_GLOBAL_MAX for devices X-Git-Tag: v18.0.0~1075^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6b58c8b0c82b6784fb727acdc24472398624d69f;p=ceph.git crimson/os/seastore/EPM: use DEVICE_ID_GLOBAL_MAX for devices Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 944232afe670..d5b66ea42b6c 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 d54add7c7c94..a45760ad4750 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;