return cached_up_osd_features;
}
+bool OSDMap::any_osd_laggy() const
+{
+ for (int osd = 0; osd < max_osd; ++osd) {
+ if (!is_up(osd)) { continue; }
+ const auto &xi = get_xinfo(osd);
+ if (xi.laggy_probability || xi.laggy_interval) {
+ return true;
+ }
+ }
+ return false;
+}
+
void OSDMap::dedup(const OSDMap *o, OSDMap *n)
{
using ceph::encode;
public:
bool have_crc() const { return crc_defined; }
uint32_t get_crc() const { return crc; }
+ bool any_osd_laggy() const;
std::shared_ptr<CrushWrapper> crush; // hierarchical map
bool stretch_mode_enabled; // we are in stretch mode, requiring multiple sites