Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / net / netfilter / nf_conntrack_proto_sctp.c
index c746d61f83edb562f17b64ba63566bc0f12d8b2b..480f616d59361e0fff4abf182dc9f35974606187 100644 (file)
@@ -853,33 +853,28 @@ static int sctp_net_init(struct net *net)
 {
        int ret = 0;
 
-       ret = nf_conntrack_l4proto_register(net,
-                                           &nf_conntrack_l4proto_sctp4);
+       ret = nf_ct_l4proto_pernet_register(net, &nf_conntrack_l4proto_sctp4);
        if (ret < 0) {
-               pr_err("nf_conntrack_l4proto_sctp4 :protocol register failed.\n");
+               pr_err("nf_conntrack_sctp4: pernet registration failed.\n");
                goto out;
        }
-       ret = nf_conntrack_l4proto_register(net,
-                                           &nf_conntrack_l4proto_sctp6);
+       ret = nf_ct_l4proto_pernet_register(net, &nf_conntrack_l4proto_sctp6);
        if (ret < 0) {
-               pr_err("nf_conntrack_l4proto_sctp6 :protocol register failed.\n");
+               pr_err("nf_conntrack_sctp6: pernet registration failed.\n");
                goto cleanup_sctp4;
        }
        return 0;
 
 cleanup_sctp4:
-       nf_conntrack_l4proto_unregister(net,
-                                       &nf_conntrack_l4proto_sctp4);
+       nf_ct_l4proto_pernet_unregister(net, &nf_conntrack_l4proto_sctp4);
 out:
        return ret;
 }
 
 static void sctp_net_exit(struct net *net)
 {
-       nf_conntrack_l4proto_unregister(net,
-                                       &nf_conntrack_l4proto_sctp6);
-       nf_conntrack_l4proto_unregister(net,
-                                       &nf_conntrack_l4proto_sctp4);
+       nf_ct_l4proto_pernet_unregister(net, &nf_conntrack_l4proto_sctp6);
+       nf_ct_l4proto_pernet_unregister(net, &nf_conntrack_l4proto_sctp4);
 }
 
 static struct pernet_operations sctp_net_ops = {
@@ -891,11 +886,33 @@ static struct pernet_operations sctp_net_ops = {
 
 static int __init nf_conntrack_proto_sctp_init(void)
 {
-       return register_pernet_subsys(&sctp_net_ops);
+       int ret;
+
+       ret = nf_ct_l4proto_register(&nf_conntrack_l4proto_sctp4);
+       if (ret < 0)
+               goto out_sctp4;
+
+       ret = nf_ct_l4proto_register(&nf_conntrack_l4proto_sctp6);
+       if (ret < 0)
+               goto out_sctp6;
+
+       ret = register_pernet_subsys(&sctp_net_ops);
+       if (ret < 0)
+               goto out_pernet;
+
+       return 0;
+out_pernet:
+       nf_ct_l4proto_unregister(&nf_conntrack_l4proto_sctp6);
+out_sctp6:
+       nf_ct_l4proto_unregister(&nf_conntrack_l4proto_sctp4);
+out_sctp4:
+       return ret;
 }
 
 static void __exit nf_conntrack_proto_sctp_fini(void)
 {
+       nf_ct_l4proto_unregister(&nf_conntrack_l4proto_sctp6);
+       nf_ct_l4proto_unregister(&nf_conntrack_l4proto_sctp4);
        unregister_pernet_subsys(&sctp_net_ops);
 }