···517517 hb_block->hb_seq = cpu_to_le64(cputime);518518 hb_block->hb_node = node_num;519519 hb_block->hb_generation = cpu_to_le64(generation);520520+ hb_block->hb_dead_ms = cpu_to_le32(o2hb_dead_threshold * O2HB_REGION_TIMEOUT_MS);520521521522 /* This step must always happen last! */522523 hb_block->hb_cksum = cpu_to_le32(o2hb_compute_block_crc_le(reg,···646645 struct o2nm_node *node;647646 struct o2hb_disk_heartbeat_block *hb_block = reg->hr_tmp_block;648647 u64 cputime;648648+ unsigned int dead_ms = o2hb_dead_threshold * O2HB_REGION_TIMEOUT_MS;649649+ unsigned int slot_dead_ms;649650650651 memcpy(hb_block, slot->ds_raw_block, reg->hr_block_bytes);651652···736733 &o2hb_live_slots[slot->ds_node_num]);737734738735 slot->ds_equal_samples = 0;736736+737737+ /* We want to be sure that all nodes agree on the738738+ * number of milliseconds before a node will be739739+ * considered dead. The self-fencing timeout is740740+ * computed from this value, and a discrepancy might741741+ * result in heartbeat calling a node dead when it742742+ * hasn't self-fenced yet. */743743+ slot_dead_ms = le32_to_cpu(hb_block->hb_dead_ms);744744+ if (slot_dead_ms && slot_dead_ms != dead_ms) {745745+ /* TODO: Perhaps we can fail the region here. */746746+ mlog(ML_ERROR, "Node %d on device %s has a dead count "747747+ "of %u ms, but our count is %u ms.\n"748748+ "Please double check your configuration values "749749+ "for 'O2CB_HEARTBEAT_THRESHOLD'\n",750750+ slot->ds_node_num, reg->hr_dev_name, slot_dead_ms,751751+ dead_ms);752752+ }739753 goto out;740754 }741755