From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH v2] rhashtable: add restart routine in rhashtable_free_and_destroy() Date: Sun, 08 Jul 2018 13:09:08 +0900 (KST) Message-ID: <20180708.130908.2302810149066931900.davem@davemloft.net> References: <20180708025551.25879-1-ap420073@gmail.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: tgraf@suug.ch, herbert@gondor.apana.org.au, netdev@vger.kernel.org, fw@strlen.de, pablo@netfilter.org To: ap420073@gmail.com Return-path: Received: from shards.monkeyblade.net ([23.128.96.9]:38088 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750740AbeGHEJM (ORCPT ); Sun, 8 Jul 2018 00:09:12 -0400 In-Reply-To: <20180708025551.25879-1-ap420073@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: From: Taehee Yoo 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.