X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fsctp%2Fprotocol.c;h=9258dfe784aee759e71c68115fa4eb847d6b8825;hb=ae94b8075a2ed58d2318ef03827b25bc844f844e;hp=b435a193c5df916cd8d4ff7d0412167d17f5c99d;hpb=b9031d9d87b24e24cd32ea15b5f4220a1e8da909;p=linux-2.6 diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index b435a193c5..9258dfe784 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c @@ -108,14 +108,23 @@ static __init int sctp_proc_init(void) } if (sctp_snmp_proc_init()) - goto out_nomem; + goto out_snmp_proc_init; if (sctp_eps_proc_init()) - goto out_nomem; + goto out_eps_proc_init; if (sctp_assocs_proc_init()) - goto out_nomem; + goto out_assocs_proc_init; return 0; +out_assocs_proc_init: + sctp_eps_proc_exit(); +out_eps_proc_init: + sctp_snmp_proc_exit(); +out_snmp_proc_init: + if (proc_net_sctp) { + proc_net_sctp = NULL; + remove_proc_entry("sctp", init_net.proc_net); + } out_nomem: return -ENOMEM; }