diff options
Diffstat (limited to 'net/tipc/server.c')
-rw-r--r-- | net/tipc/server.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/tipc/server.c b/net/tipc/server.c index ab6183cdb121..77ff03ed1e18 100644 --- a/net/tipc/server.c +++ b/net/tipc/server.c | |||
@@ -102,7 +102,7 @@ static void tipc_conn_kref_release(struct kref *kref) | |||
102 | } | 102 | } |
103 | saddr->scope = -TIPC_NODE_SCOPE; | 103 | saddr->scope = -TIPC_NODE_SCOPE; |
104 | kernel_bind(sock, (struct sockaddr *)saddr, sizeof(*saddr)); | 104 | kernel_bind(sock, (struct sockaddr *)saddr, sizeof(*saddr)); |
105 | sk_release_kernel(sk); | 105 | sock_release(sock); |
106 | con->sock = NULL; | 106 | con->sock = NULL; |
107 | } | 107 | } |
108 | 108 | ||
@@ -321,12 +321,9 @@ static struct socket *tipc_create_listen_sock(struct tipc_conn *con) | |||
321 | struct socket *sock = NULL; | 321 | struct socket *sock = NULL; |
322 | int ret; | 322 | int ret; |
323 | 323 | ||
324 | ret = sock_create_kern(AF_TIPC, SOCK_SEQPACKET, 0, &sock); | 324 | ret = __sock_create(s->net, AF_TIPC, SOCK_SEQPACKET, 0, &sock, 1); |
325 | if (ret < 0) | 325 | if (ret < 0) |
326 | return NULL; | 326 | return NULL; |
327 | |||
328 | sk_change_net(sock->sk, s->net); | ||
329 | |||
330 | ret = kernel_setsockopt(sock, SOL_TIPC, TIPC_IMPORTANCE, | 327 | ret = kernel_setsockopt(sock, SOL_TIPC, TIPC_IMPORTANCE, |
331 | (char *)&s->imp, sizeof(s->imp)); | 328 | (char *)&s->imp, sizeof(s->imp)); |
332 | if (ret < 0) | 329 | if (ret < 0) |
@@ -376,7 +373,7 @@ static struct socket *tipc_create_listen_sock(struct tipc_conn *con) | |||
376 | 373 | ||
377 | create_err: | 374 | create_err: |
378 | kernel_sock_shutdown(sock, SHUT_RDWR); | 375 | kernel_sock_shutdown(sock, SHUT_RDWR); |
379 | sk_release_kernel(sock->sk); | 376 | sock_release(sock); |
380 | return NULL; | 377 | return NULL; |
381 | } | 378 | } |
382 | 379 | ||