diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2008-06-16 19:59:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-16 19:59:55 -0400 |
commit | 80896a3584bbff9ff9ad4dde735517c4de68d736 (patch) | |
tree | 0646aee2e49f0d8c789a3239d579a6e9e7fee0bb /net/sctp/protocol.c | |
parent | 93653e0448196344d7699ccad395eaebd30359d1 (diff) |
sctp: Correctly cleanup procfs entries upon failure.
This patch remove the proc fs entry which has been created if fail to
set up proc fs entry for the SCTP protocol.
Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/protocol.c')
-rw-r--r-- | net/sctp/protocol.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index b435a193c5df..9258dfe784ae 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
@@ -108,14 +108,23 @@ static __init int sctp_proc_init(void) | |||
108 | } | 108 | } |
109 | 109 | ||
110 | if (sctp_snmp_proc_init()) | 110 | if (sctp_snmp_proc_init()) |
111 | goto out_nomem; | 111 | goto out_snmp_proc_init; |
112 | if (sctp_eps_proc_init()) | 112 | if (sctp_eps_proc_init()) |
113 | goto out_nomem; | 113 | goto out_eps_proc_init; |
114 | if (sctp_assocs_proc_init()) | 114 | if (sctp_assocs_proc_init()) |
115 | goto out_nomem; | 115 | goto out_assocs_proc_init; |
116 | 116 | ||
117 | return 0; | 117 | return 0; |
118 | 118 | ||
119 | out_assocs_proc_init: | ||
120 | sctp_eps_proc_exit(); | ||
121 | out_eps_proc_init: | ||
122 | sctp_snmp_proc_exit(); | ||
123 | out_snmp_proc_init: | ||
124 | if (proc_net_sctp) { | ||
125 | proc_net_sctp = NULL; | ||
126 | remove_proc_entry("sctp", init_net.proc_net); | ||
127 | } | ||
119 | out_nomem: | 128 | out_nomem: |
120 | return -ENOMEM; | 129 | return -ENOMEM; |
121 | } | 130 | } |