aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSimon Horman <horms@verge.net.au>2011-02-04 04:33:02 -0500
committerSimon Horman <horms@verge.net.au>2011-03-14 20:37:00 -0400
commita7a86b8616bc1595c4f5f109b7c39d4eb5d55e32 (patch)
tree2cddab348ea11091fced0a07a6218dc7ea9c059f /net
parenta4e2f5a700cb93448b2da0e158149d18dc5290ef (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.c9
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,
499int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, 499int 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