conn_clean_safe(struct conntrack *ct, struct conn *conn,
                struct conntrack_bucket *ctb, uint32_t hash)
{
    ovs_mutex_lock(&ctb->cleanup_mutex);
    ct_lock_lock(&ctb->lock);
    conn = conn_lookup_def(&conn->key, ctb, hash);
    if (conn) {
        conn_clean(ct, conn, ctb);
    }
    ct_lock_unlock(&ctb->lock);
    ovs_mutex_unlock(&ctb->cleanup_mutex);
}
conn_clean_safe(struct conntrack *ct, struct conn *conn,
                struct conntrack_bucket *ctb, uint32_t hash)
{
    ovs_mutex_lock(&ctb->cleanup_mutex);
    ct_lock_lock(&ctb->lock);
    conn = conn_lookup_def(&conn->key, ctb, hash);
    if (conn) {
        conn_clean(ct, conn, ctb);
    }
    ct_lock_unlock(&ctb->lock);
    ovs_mutex_unlock(&ctb->cleanup_mutex);
}