X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=rculfhash.c;h=a736b868ae7dac21c1d4d60d561cfcfbb1d223e9;hp=6e07878a1c3db3c2afac4700727491a2aa8be3ea;hb=194fdbd18a42d2c23f4a53cc692f1fa03d31ec64;hpb=ae450da3b54fe3c8ea8fc92ec9a9ce2ad8f131cb diff --git a/rculfhash.c b/rculfhash.c index 6e07878..a736b86 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -887,6 +887,9 @@ struct cds_lfht_node *_cds_lfht_add(struct cds_lfht *ht, 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;