diff options
author | Simon Horman <horms@verge.net.au> | 2011-02-04 04:33:02 -0500 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2011-03-14 20:37:00 -0400 |
commit | a7a86b8616bc1595c4f5f109b7c39d4eb5d55e32 (patch) | |
tree | 2cddab348ea11091fced0a07a6218dc7ea9c059f /net | |
parent | a4e2f5a700cb93448b2da0e158149d18dc5290ef (diff) |
IPVS: Minimise ip_vs_leave when CONFIG_SYSCTL is undefined
Much of ip_vs_leave() is unnecessary if CONFIG_SYSCTL is undefined.
I tried an approach of breaking the now #ifdef'ed portions out
into a separate function. However this appeared to grow the
compiled code on x86_64 by about 200 bytes in the case where
CONFIG_SYSCTL is defined. So I have gone with the simpler though
less elegant #ifdef'ed solution for now.
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/ipvs/ip_vs_core.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c index d418bc60d00d..07accf6b2401 100644 --- a/net/netfilter/ipvs/ip_vs_core.c +++ b/net/netfilter/ipvs/ip_vs_core.c | |||
@@ -499,11 +499,13 @@ ip_vs_schedule(struct ip_vs_service *svc, struct sk_buff *skb, | |||
499 | int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, | 499 | int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, |
500 | struct ip_vs_proto_data *pd) | 500 | struct ip_vs_proto_data *pd) |
501 | { | 501 | { |
502 | struct net *net; | ||
503 | struct netns_ipvs *ipvs; | ||
504 | __be16 _ports[2], *pptr; | 502 | __be16 _ports[2], *pptr; |
505 | struct ip_vs_iphdr iph; | 503 | struct ip_vs_iphdr iph; |
504 | #ifdef CONFIG_SYSCTL | ||
505 | struct net *net; | ||
506 | struct netns_ipvs *ipvs; | ||
506 | int unicast; | 507 | int unicast; |
508 | #endif | ||
507 | 509 | ||
508 | ip_vs_fill_iphdr(svc->af, skb_network_header(skb), &iph); | 510 | ip_vs_fill_iphdr(svc->af, skb_network_header(skb), &iph); |
509 | 511 | ||
@@ -512,6 +514,8 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, | |||
512 | ip_vs_service_put(svc); | 514 | ip_vs_service_put(svc); |
513 | return NF_DROP; | 515 | return NF_DROP; |
514 | } | 516 | } |
517 | |||
518 | #ifdef CONFIG_SYSCTL | ||
515 | net = skb_net(skb); | 519 | net = skb_net(skb); |
516 | 520 | ||
517 | #ifdef CONFIG_IP_VS_IPV6 | 521 | #ifdef CONFIG_IP_VS_IPV6 |
@@ -563,6 +567,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, | |||
563 | ip_vs_conn_put(cp); | 567 | ip_vs_conn_put(cp); |
564 | return ret; | 568 | return ret; |
565 | } | 569 | } |
570 | #endif | ||
566 | 571 | ||
567 | /* | 572 | /* |
568 | * When the virtual ftp service is presented, packets destined | 573 | * When the virtual ftp service is presented, packets destined |