|
@@ -688,7 +688,8 @@ static inline enum ip_defrag_users ip_vs_defrag_user(unsigned int hooknum)
|
|
|
return IP_DEFRAG_VS_OUT;
|
|
|
}
|
|
|
|
|
|
-static inline int ip_vs_gather_frags(struct sk_buff *skb, u_int32_t user)
|
|
|
+static inline int ip_vs_gather_frags(struct netns_ipvs *ipvs,
|
|
|
+ struct sk_buff *skb, u_int32_t user)
|
|
|
{
|
|
|
int err;
|
|
|
|
|
@@ -912,7 +913,7 @@ static int ip_vs_out_icmp(struct netns_ipvs *ipvs, struct sk_buff *skb,
|
|
|
|
|
|
/* reassemble IP fragments */
|
|
|
if (ip_is_fragment(ip_hdr(skb))) {
|
|
|
- if (ip_vs_gather_frags(skb, ip_vs_defrag_user(hooknum)))
|
|
|
+ if (ip_vs_gather_frags(ipvs, skb, ip_vs_defrag_user(hooknum)))
|
|
|
return NF_STOLEN;
|
|
|
}
|
|
|
|
|
@@ -1232,7 +1233,7 @@ ip_vs_out(struct netns_ipvs *ipvs, unsigned int hooknum, struct sk_buff *skb, in
|
|
|
if (af == AF_INET)
|
|
|
#endif
|
|
|
if (unlikely(ip_is_fragment(ip_hdr(skb)) && !pp->dont_defrag)) {
|
|
|
- if (ip_vs_gather_frags(skb,
|
|
|
+ if (ip_vs_gather_frags(ipvs, skb,
|
|
|
ip_vs_defrag_user(hooknum)))
|
|
|
return NF_STOLEN;
|
|
|
|
|
@@ -1403,7 +1404,7 @@ ip_vs_in_icmp(struct netns_ipvs *ipvs, struct sk_buff *skb, int *related,
|
|
|
|
|
|
/* reassemble IP fragments */
|
|
|
if (ip_is_fragment(ip_hdr(skb))) {
|
|
|
- if (ip_vs_gather_frags(skb, ip_vs_defrag_user(hooknum)))
|
|
|
+ if (ip_vs_gather_frags(ipvs, skb, ip_vs_defrag_user(hooknum)))
|
|
|
return NF_STOLEN;
|
|
|
}
|
|
|
|