xfrm_policy: remove xfrm_policy_lookup
authorFlorian Westphal <fw@strlen.de>
Mon, 17 Jul 2017 11:57:24 +0000 (13:57 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Jul 2017 18:13:41 +0000 (11:13 -0700)
This removes the wrapper and renames the __xfrm_policy_lookup variant
to get rid of another place that used flow cache objects.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/xfrm/xfrm_policy.c

index 9f724a6884758be91b8c57e9d36448c6070f33ce..339bb3ac27971f07ed6a45d2f8b1ab64fd5483a8 100644 (file)
@@ -1175,7 +1175,7 @@ fail:
 }
 
 static struct xfrm_policy *
-__xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir)
+xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir)
 {
 #ifdef CONFIG_XFRM_SUB_POLICY
        struct xfrm_policy *pol;
@@ -1187,26 +1187,6 @@ __xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir
        return xfrm_policy_lookup_bytype(net, XFRM_POLICY_TYPE_MAIN, fl, family, dir);
 }
 
-static struct flow_cache_object *
-xfrm_policy_lookup(struct net *net, const struct flowi *fl, u16 family,
-                  u8 dir, struct flow_cache_object *old_obj, void *ctx)
-{
-       struct xfrm_policy *pol;
-
-       if (old_obj)
-               xfrm_pol_put(container_of(old_obj, struct xfrm_policy, flo));
-
-       pol = __xfrm_policy_lookup(net, fl, family, dir);
-       if (IS_ERR_OR_NULL(pol))
-               return ERR_CAST(pol);
-
-       /* Resolver returns two references:
-        * one for cache and one for caller of flow_cache_lookup() */
-       xfrm_pol_hold(pol);
-
-       return &pol->flo;
-}
-
 static struct xfrm_policy *xfrm_sk_policy_lookup(const struct sock *sk, int dir,
                                                 const struct flowi *fl, u16 family)
 {
@@ -2028,7 +2008,7 @@ xfrm_bundle_lookup(struct net *net, const struct flowi *fl, u16 family, u8 dir,
        /* Resolve policies to use if we couldn't get them from
         * previous cache entry */
        num_pols = 1;
-       pols[0] = __xfrm_policy_lookup(net, fl, family, dir);
+       pols[0] = xfrm_policy_lookup(net, fl, family, dir);
        err = xfrm_expand_policies(fl, family, pols,
                                           &num_pols, &num_xfrms);
        if (err < 0)
@@ -2398,16 +2378,8 @@ int __xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb,
                }
        }
 
-       if (!pol) {
-               struct flow_cache_object *flo;
-
-               flo = xfrm_policy_lookup(net, &fl, family, dir, NULL, NULL);
-
-               if (IS_ERR_OR_NULL(flo))
-                       pol = ERR_CAST(flo);
-               else
-                       pol = container_of(flo, struct xfrm_policy, flo);
-       }
+       if (!pol)
+               pol = xfrm_policy_lookup(net, &fl, family, dir);
 
        if (IS_ERR(pol)) {
                XFRM_INC_STATS(net, LINUX_MIB_XFRMINPOLERROR);