netfilter: nf_tables: move nft_expr_clone() to nf_tables_api.c
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 17 Mar 2020 13:13:44 +0000 (14:13 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 19 Mar 2020 10:37:31 +0000 (11:37 +0100)
Move the nft_expr_clone() helper function to the core.

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

index 5d80e09..af2ed70 100644 (file)
@@ -846,6 +846,7 @@ static inline void *nft_expr_priv(const struct nft_expr *expr)
        return (void *)expr->data;
 }
 
+int nft_expr_clone(struct nft_expr *dst, struct nft_expr *src);
 void nft_expr_destroy(const struct nft_ctx *ctx, struct nft_expr *expr);
 int nft_expr_dump(struct sk_buff *skb, unsigned int attr,
                  const struct nft_expr *expr);
index f92fb60..4f6245e 100644 (file)
@@ -2557,6 +2557,24 @@ err1:
        return ERR_PTR(err);
 }
 
+int nft_expr_clone(struct nft_expr *dst, struct nft_expr *src)
+{
+       int err;
+
+       if (src->ops->clone) {
+               dst->ops = src->ops;
+               err = src->ops->clone(dst, src);
+               if (err < 0)
+                       return err;
+       } else {
+               memcpy(dst, src, src->ops->size);
+       }
+
+       __module_get(src->ops->type->owner);
+
+       return 0;
+}
+
 void nft_expr_destroy(const struct nft_ctx *ctx, struct nft_expr *expr)
 {
        nf_tables_expr_destroy(ctx, expr);
index 46ab28e..d1b64c8 100644 (file)
@@ -24,23 +24,6 @@ struct nft_dynset {
        struct nft_set_binding          binding;
 };
 
-static int nft_expr_clone(struct nft_expr *dst, struct nft_expr *src)
-{
-       int err;
-
-       if (src->ops->clone) {
-               dst->ops = src->ops;
-               err = src->ops->clone(dst, src);
-               if (err < 0)
-                       return err;
-       } else {
-               memcpy(dst, src, src->ops->size);
-       }
-
-       __module_get(src->ops->type->owner);
-       return 0;
-}
-
 static void *nft_dynset_new(struct nft_set *set, const struct nft_expr *expr,
                            struct nft_regs *regs)
 {