rculfhash: do not sample in_progress_destroy in the middle of a level
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 30 Sep 2011 17:37:07 +0000 (13:37 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 30 Sep 2011 17:37:07 +0000 (13:37 -0400)
Caused destroy assert/segfaults.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
rculfhash.c

index fa2121c9820edaa010856bf96a675a9cd6eace2e..efb1b22ce566c494c78fe3f74cafc83b33d5a9d1 100644 (file)
@@ -1097,8 +1097,6 @@ void init_table_populate_partition(struct cds_lfht *ht, unsigned long i,
                        bit_reverse_ulong(!i ? 0 : (1UL << (i - 1)) + j);
                (void) _cds_lfht_add(ht, !i ? 0 : (1UL << (i - 1)),
                                new_node, ADD_DEFAULT, 1);
-               if (CMM_LOAD_SHARED(ht->in_progress_destroy))
-                       break;
        }
        ht->cds_lfht_rcu_read_unlock();
 }
@@ -1200,8 +1198,6 @@ void remove_table_partition(struct cds_lfht *ht, unsigned long i,
                        bit_reverse_ulong(!i ? 0 : (1UL << (i - 1)) + j);
                (void) _cds_lfht_del(ht, !i ? 0 : (1UL << (i - 1)),
                                fini_node, 1);
-               if (CMM_LOAD_SHARED(ht->in_progress_destroy))
-                       break;
        }
        ht->cds_lfht_rcu_read_unlock();
 }
This page took 0.026504 seconds and 4 git commands to generate.