aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/ipvs/ip_vs_lblc.c7
-rw-r--r--net/ipv4/ipvs/ip_vs_lblcr.c7
2 files changed, 12 insertions, 2 deletions
diff --git a/net/ipv4/ipvs/ip_vs_lblc.c b/net/ipv4/ipvs/ip_vs_lblc.c
index b843a11d7cf7..ad89644ef5d2 100644
--- a/net/ipv4/ipvs/ip_vs_lblc.c
+++ b/net/ipv4/ipvs/ip_vs_lblc.c
@@ -580,9 +580,14 @@ static struct ip_vs_scheduler ip_vs_lblc_scheduler =
580 580
581static int __init ip_vs_lblc_init(void) 581static int __init ip_vs_lblc_init(void)
582{ 582{
583 int ret;
584
583 INIT_LIST_HEAD(&ip_vs_lblc_scheduler.n_list); 585 INIT_LIST_HEAD(&ip_vs_lblc_scheduler.n_list);
584 sysctl_header = register_sysctl_table(lblc_root_table); 586 sysctl_header = register_sysctl_table(lblc_root_table);
585 return register_ip_vs_scheduler(&ip_vs_lblc_scheduler); 587 ret = register_ip_vs_scheduler(&ip_vs_lblc_scheduler);
588 if (ret)
589 unregister_sysctl_table(sysctl_header);
590 return ret;
586} 591}
587 592
588 593
diff --git a/net/ipv4/ipvs/ip_vs_lblcr.c b/net/ipv4/ipvs/ip_vs_lblcr.c
index e5b323a6b2f7..2a5ed85a3352 100644
--- a/net/ipv4/ipvs/ip_vs_lblcr.c
+++ b/net/ipv4/ipvs/ip_vs_lblcr.c
@@ -769,9 +769,14 @@ static struct ip_vs_scheduler ip_vs_lblcr_scheduler =
769 769
770static int __init ip_vs_lblcr_init(void) 770static int __init ip_vs_lblcr_init(void)
771{ 771{
772 int ret;
773
772 INIT_LIST_HEAD(&ip_vs_lblcr_scheduler.n_list); 774 INIT_LIST_HEAD(&ip_vs_lblcr_scheduler.n_list);
773 sysctl_header = register_sysctl_table(lblcr_root_table); 775 sysctl_header = register_sysctl_table(lblcr_root_table);
774 return register_ip_vs_scheduler(&ip_vs_lblcr_scheduler); 776 ret = register_ip_vs_scheduler(&ip_vs_lblcr_scheduler);
777 if (ret)
778 unregister_sysctl_table(sysctl_header);
779 return ret;
775} 780}
776 781
777 782