diff options
author | Anton Altaparmakov <aia21@cantab.net> | 2005-12-05 10:48:41 -0500 |
---|---|---|
committer | Anton Altaparmakov <aia21@cantab.net> | 2005-12-05 10:48:41 -0500 |
commit | 292d4ed32e35df4755052b5002e533348d1648fd (patch) | |
tree | 8522e6bab962696bd25a6c02fb068c674a09b7ee /net/ipv4/af_inet.c | |
parent | 3c6af7fa787f21f8873a050568ed892312899eb5 (diff) | |
parent | e4f5c82a92c2a546a16af1614114eec19120e40a (diff) |
Merge branch 'master' of /usr/src/ntfs-2.6/
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r-- | net/ipv4/af_inet.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index eaa150c33b04..d368cf249000 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c | |||
@@ -228,13 +228,14 @@ static int inet_create(struct socket *sock, int protocol) | |||
228 | unsigned char answer_flags; | 228 | unsigned char answer_flags; |
229 | char answer_no_check; | 229 | char answer_no_check; |
230 | int try_loading_module = 0; | 230 | int try_loading_module = 0; |
231 | int err = -ESOCKTNOSUPPORT; | 231 | int err; |
232 | 232 | ||
233 | sock->state = SS_UNCONNECTED; | 233 | sock->state = SS_UNCONNECTED; |
234 | 234 | ||
235 | /* Look for the requested type/protocol pair. */ | 235 | /* Look for the requested type/protocol pair. */ |
236 | answer = NULL; | 236 | answer = NULL; |
237 | lookup_protocol: | 237 | lookup_protocol: |
238 | err = -ESOCKTNOSUPPORT; | ||
238 | rcu_read_lock(); | 239 | rcu_read_lock(); |
239 | list_for_each_rcu(p, &inetsw[sock->type]) { | 240 | list_for_each_rcu(p, &inetsw[sock->type]) { |
240 | answer = list_entry(p, struct inet_protosw, list); | 241 | answer = list_entry(p, struct inet_protosw, list); |
@@ -252,6 +253,7 @@ lookup_protocol: | |||
252 | if (IPPROTO_IP == answer->protocol) | 253 | if (IPPROTO_IP == answer->protocol) |
253 | break; | 254 | break; |
254 | } | 255 | } |
256 | err = -EPROTONOSUPPORT; | ||
255 | answer = NULL; | 257 | answer = NULL; |
256 | } | 258 | } |
257 | 259 | ||
@@ -280,9 +282,6 @@ lookup_protocol: | |||
280 | err = -EPERM; | 282 | err = -EPERM; |
281 | if (answer->capability > 0 && !capable(answer->capability)) | 283 | if (answer->capability > 0 && !capable(answer->capability)) |
282 | goto out_rcu_unlock; | 284 | goto out_rcu_unlock; |
283 | err = -EPROTONOSUPPORT; | ||
284 | if (!protocol) | ||
285 | goto out_rcu_unlock; | ||
286 | 285 | ||
287 | sock->ops = answer->ops; | 286 | sock->ops = answer->ops; |
288 | answer_prot = answer->prot; | 287 | answer_prot = answer->prot; |