}
 EXPORT_SYMBOL_GPL(o2hb_check_node_heartbeating);
 
+int o2hb_check_node_heartbeating_no_sem(u8 node_num)
+{
+       unsigned long testing_map[BITS_TO_LONGS(O2NM_MAX_NODES)];
+       unsigned long flags;
+
+       spin_lock_irqsave(&o2hb_live_lock, flags);
+       o2hb_fill_node_map_from_callback(testing_map, sizeof(testing_map));
+       spin_unlock_irqrestore(&o2hb_live_lock, flags);
+       if (!test_bit(node_num, testing_map)) {
+               mlog(ML_HEARTBEAT,
+                    "node (%u) does not have heartbeating enabled.\n",
+                    node_num);
+               return 0;
+       }
+
+       return 1;
+}
+EXPORT_SYMBOL_GPL(o2hb_check_node_heartbeating_no_sem);
+
 int o2hb_check_node_heartbeating_from_callback(u8 node_num)
 {
        unsigned long testing_map[BITS_TO_LONGS(O2NM_MAX_NODES)];
 
 void o2hb_exit(void);
 int o2hb_init(void);
 int o2hb_check_node_heartbeating(u8 node_num);
+int o2hb_check_node_heartbeating_no_sem(u8 node_num);
 int o2hb_check_node_heartbeating_from_callback(u8 node_num);
 int o2hb_check_local_node_heartbeating(void);
 void o2hb_stop_all_regions(void);
 
         * to back off and try again.  This gives heartbeat a chance
         * to catch up.
         */
-       if (!o2hb_check_node_heartbeating(query->node_idx)) {
+       if (!o2hb_check_node_heartbeating_no_sem(query->node_idx)) {
                mlog(0, "node %u is not in our live map yet\n",
                     query->node_idx);