diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-02-15 12:27:08 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-02-15 18:17:06 +0100 |
commit | 00dfe9bebdf09c37827fb71db89c66a396f1a38c (patch) | |
tree | e18a650292f4f2152f17049fe78de39d7ee00b1f /net | |
parent | netfilter: nftables: add helper function to release one table (diff) | |
download | linux-00dfe9bebdf09c37827fb71db89c66a396f1a38c.tar.xz linux-00dfe9bebdf09c37827fb71db89c66a396f1a38c.zip |
netfilter: nftables: add helper function to release hooks of one single table
Add a function to release the hooks of one single table.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/nf_tables_api.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index c2b89116dcef..dffb4f8ef17f 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -8988,15 +8988,20 @@ int __nft_release_basechain(struct nft_ctx *ctx) } EXPORT_SYMBOL_GPL(__nft_release_basechain); +static void __nft_release_hook(struct net *net, struct nft_table *table) +{ + struct nft_chain *chain; + + list_for_each_entry(chain, &table->chains, list) + nf_tables_unregister_hook(net, table, chain); +} + static void __nft_release_hooks(struct net *net) { struct nft_table *table; - struct nft_chain *chain; - list_for_each_entry(table, &net->nft.tables, list) { - list_for_each_entry(chain, &table->chains, list) - nf_tables_unregister_hook(net, table, chain); - } + list_for_each_entry(table, &net->nft.tables, list) + __nft_release_hook(net, table); } static void __nft_release_table(struct net *net, struct nft_table *table) |