diff options
author | Simon Horman <horms@verge.net.au> | 2010-08-22 21:37:52 +0900 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2010-10-04 22:45:24 +0900 |
commit | 6e08bfb879574524cc9a67be960c684989fd986c (patch) | |
tree | 7ae752735101d2928993ad57f092904bfb81922f /net/netfilter/ipvs/ip_vs_ctl.c | |
parent | f11017ec2d1859c661f4e2b12c4a8d250e1f47cf (diff) | |
download | kernel_samsung_smdk4412-6e08bfb879574524cc9a67be960c684989fd986c.zip kernel_samsung_smdk4412-6e08bfb879574524cc9a67be960c684989fd986c.tar.gz kernel_samsung_smdk4412-6e08bfb879574524cc9a67be960c684989fd986c.tar.bz2 |
IPVS: Allow null argument to ip_vs_scheduler_put()
This simplifies caller logic sightly.
Signed-off-by: Simon Horman <horms@verge.net.au>
Acked-by: Julian Anastasov <ja@ssi.bg>
Diffstat (limited to 'net/netfilter/ipvs/ip_vs_ctl.c')
-rw-r--r-- | net/netfilter/ipvs/ip_vs_ctl.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c index e4ec8f3..f7afcfe 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c @@ -1144,7 +1144,7 @@ ip_vs_add_service(struct ip_vs_service_user_kern *u, if (sched == NULL) { pr_info("Scheduler module ip_vs_%s not found\n", u->sched_name); ret = -ENOENT; - goto out_mod_dec; + goto out_err; } #ifdef CONFIG_IP_VS_IPV6 @@ -1204,7 +1204,7 @@ ip_vs_add_service(struct ip_vs_service_user_kern *u, *svc_p = svc; return 0; - out_err: + out_err: if (svc != NULL) { if (svc->scheduler) ip_vs_unbind_scheduler(svc); @@ -1217,7 +1217,6 @@ ip_vs_add_service(struct ip_vs_service_user_kern *u, } ip_vs_scheduler_put(sched); - out_mod_dec: /* decrease the module use count */ ip_vs_use_count_dec(); @@ -1300,10 +1299,7 @@ ip_vs_edit_service(struct ip_vs_service *svc, struct ip_vs_service_user_kern *u) #ifdef CONFIG_IP_VS_IPV6 out: #endif - - if (old_sched) - ip_vs_scheduler_put(old_sched); - + ip_vs_scheduler_put(old_sched); return ret; } @@ -1327,8 +1323,7 @@ static void __ip_vs_del_service(struct ip_vs_service *svc) /* Unbind scheduler */ old_sched = svc->scheduler; ip_vs_unbind_scheduler(svc); - if (old_sched) - ip_vs_scheduler_put(old_sched); + ip_vs_scheduler_put(old_sched); /* Unbind app inc */ if (svc->inc) { |