forked from Minki/linux
xfrm_policy: remove xfrm_policy_lookup
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>
This commit is contained in:
parent
aff669bc28
commit
86dc8ee0b2
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user