From: Taehee Yoo <ap420...@gmail.com> Date: Sun, 8 Jul 2018 11:55:51 +0900
> @@ -1143,13 +1143,14 @@ void rhashtable_free_and_destroy(struct rhashtable > *ht, > void (*free_fn)(void *ptr, void *arg), > void *arg) > { > - struct bucket_table *tbl; > + struct bucket_table *tbl, *next_tbl; > unsigned int i; ... > tbl = rht_dereference(ht->tbl, ht); > +restart: > if (free_fn) { ... > @@ -1166,7 +1167,12 @@ void rhashtable_free_and_destroy(struct rhashtable *ht, > } > } > > + next_tbl = rht_dereference(tbl->future_tbl, ht); > bucket_table_free(tbl); > + if (next_tbl) { > + tbl = next_tbl; > + goto restart; > + } This looks good to me, Herbert please review.