goto insert;
if (likely(clear_flag(iter)->p.reverse_hash > node->p.reverse_hash))
goto insert;
+ /* dummy node is the first node of the identical-hash-value chain */
+ if (dummy && clear_flag(iter)->p.reverse_hash == node->p.reverse_hash)
+ goto insert;
next = rcu_dereference(clear_flag(iter)->p.next);
if (unlikely(is_removed(next)))
goto gc_node;
if ((mode == ADD_UNIQUE || mode == ADD_REPLACE)
&& !is_dummy(next)
+ && clear_flag(iter)->p.reverse_hash == node->p.reverse_hash
&& !ht->compare_fct(node->key, node->key_len,
clear_flag(iter)->key,
clear_flag(iter)->key_len)) {
next = rcu_dereference(node->p.next);
if (likely(!is_removed(next))
&& !is_dummy(next)
+ && clear_flag(node)->p.reverse_hash == reverse_hash
&& likely(!ht->compare_fct(node->key, node->key_len, key, key_len))) {
break;
}