netfilter: nf_tables: add nft_flowtable_hooks_destroy()
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 20 May 2020 11:43:43 +0000 (13:43 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 27 May 2020 20:20:34 +0000 (22:20 +0200)
This patch adds a helper function destroy the flowtable hooks.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c

index 1505552..f5d1007 100644 (file)
@@ -6339,6 +6339,16 @@ err_unregister_net_hooks:
        return err;
 }
 
+static void nft_flowtable_hooks_destroy(struct list_head *hook_list)
+{
+       struct nft_hook *hook, *next;
+
+       list_for_each_entry_safe(hook, next, hook_list, list) {
+               list_del_rcu(&hook->list);
+               kfree_rcu(hook, rcu);
+       }
+}
+
 static int nf_tables_newflowtable(struct net *net, struct sock *nlsk,
                                  struct sk_buff *skb,
                                  const struct nlmsghdr *nlh,
@@ -6433,10 +6443,7 @@ static int nf_tables_newflowtable(struct net *net, struct sock *nlsk,
                                               &flowtable->hook_list,
                                               flowtable);
        if (err < 0) {
-               list_for_each_entry_safe(hook, next, &flowtable->hook_list, list) {
-                       list_del_rcu(&hook->list);
-                       kfree_rcu(hook, rcu);
-               }
+               nft_flowtable_hooks_destroy(&flowtable->hook_list);
                goto err4;
        }