fs: dlm: use WARN_ON_ONCE() instead of WARN_ON()
authorAlexander Aring <aahringo@redhat.com>
Thu, 27 Oct 2022 20:45:27 +0000 (16:45 -0400)
committerDavid Teigland <teigland@redhat.com>
Tue, 8 Nov 2022 18:59:41 +0000 (12:59 -0600)
To not get the console spammed about WARN_ON() of invalid states in the
dlm midcomms hot path handling we switch to WARN_ON_ONCE() to get it
only once that there might be an issue with the midcomms state handling.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/midcomms.c

index 3a4e20d6cd2dc9de79583522dcff0c4e2ca26e24..32194a750fe100590a6d1c15df697bbc0859ee06 100644 (file)
@@ -469,7 +469,7 @@ static void dlm_pas_fin_ack_rcv(struct midcomms_node *node)
                spin_unlock(&node->state_lock);
                log_print("%s: unexpected state: %d\n",
                          __func__, node->state);
-               WARN_ON(1);
+               WARN_ON_ONCE(1);
                return;
        }
        spin_unlock(&node->state_lock);
@@ -540,7 +540,7 @@ static void dlm_midcomms_receive_buffer(union dlm_packet *p,
                                spin_unlock(&node->state_lock);
                                log_print("%s: unexpected state: %d\n",
                                          __func__, node->state);
-                               WARN_ON(1);
+                               WARN_ON_ONCE(1);
                                return;
                        }
                        spin_unlock(&node->state_lock);
@@ -548,7 +548,7 @@ static void dlm_midcomms_receive_buffer(union dlm_packet *p,
                        set_bit(DLM_NODE_FLAG_STOP_RX, &node->flags);
                        break;
                default:
-                       WARN_ON(test_bit(DLM_NODE_FLAG_STOP_RX, &node->flags));
+                       WARN_ON_ONCE(test_bit(DLM_NODE_FLAG_STOP_RX, &node->flags));
                        dlm_receive_buffer_3_2_trace(seq, p);
                        dlm_receive_buffer(p, node->nodeid);
                        set_bit(DLM_NODE_ULP_DELIVERED, &node->flags);
@@ -770,7 +770,7 @@ static void dlm_midcomms_receive_buffer_3_2(union dlm_packet *p, int nodeid)
                        goto out;
                }
 
-               WARN_ON(test_bit(DLM_NODE_FLAG_STOP_RX, &node->flags));
+               WARN_ON_ONCE(test_bit(DLM_NODE_FLAG_STOP_RX, &node->flags));
                dlm_receive_buffer(p, nodeid);
                break;
        case DLM_OPTS:
@@ -1095,7 +1095,7 @@ struct dlm_mhandle *dlm_midcomms_get_mhandle(int nodeid, int len,
        }
 
        /* this is a bug, however we going on and hope it will be resolved */
-       WARN_ON(test_bit(DLM_NODE_FLAG_STOP_TX, &node->flags));
+       WARN_ON_ONCE(test_bit(DLM_NODE_FLAG_STOP_TX, &node->flags));
 
        mh = dlm_allocate_mhandle(allocation);
        if (!mh)
@@ -1127,7 +1127,7 @@ struct dlm_mhandle *dlm_midcomms_get_mhandle(int nodeid, int len,
                break;
        default:
                dlm_free_mhandle(mh);
-               WARN_ON(1);
+               WARN_ON_ONCE(1);
                goto err;
        }
 
@@ -1196,7 +1196,7 @@ void dlm_midcomms_commit_mhandle(struct dlm_mhandle *mh,
                break;
        default:
                srcu_read_unlock(&nodes_srcu, mh->idx);
-               WARN_ON(1);
+               WARN_ON_ONCE(1);
                break;
        }
 }
@@ -1238,7 +1238,7 @@ static void dlm_act_fin_ack_rcv(struct midcomms_node *node)
                spin_unlock(&node->state_lock);
                log_print("%s: unexpected state: %d\n",
                          __func__, node->state);
-               WARN_ON(1);
+               WARN_ON_ONCE(1);
                return;
        }
        spin_unlock(&node->state_lock);
@@ -1356,7 +1356,7 @@ static void midcomms_node_release(struct rcu_head *rcu)
 {
        struct midcomms_node *node = container_of(rcu, struct midcomms_node, rcu);
 
-       WARN_ON(atomic_read(&node->send_queue_cnt));
+       WARN_ON_ONCE(atomic_read(&node->send_queue_cnt));
        kfree(node);
 }