+ dummy_node = (struct cds_lfht_node *) lookup;
+ /* We can always skip the dummy node initially */
+ node = rcu_dereference(dummy_node->p.next);
+ if (unlikely(node == NULL)) {
+ /*
+ * We are executing concurrently with a hash table
+ * expand, so we see a dummy node with NULL next value.
+ * Help expand by linking this node into the list and
+ * retry.
+ */
+ (void) _cds_lfht_add(ht, size >> 1, dummy_node, 0, 1);
+ goto restart; /* retry */
+ }
+ node = clear_flag(node);