diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
commit | b981d8b3f5e008ff10d993be633ad00564fc22cd (patch) | |
tree | e292dc07b22308912cf6a58354a608b9e5e8e1fd /net/tipc/socket.c | |
parent | b11d2127c4893a7315d1e16273bc8560049fa3ca (diff) | |
parent | 2b9e0aae1d50e880c58d46788e5e3ebd89d75d62 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/macintosh/adbhid.c
Diffstat (limited to 'net/tipc/socket.c')
-rw-r--r-- | net/tipc/socket.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 4a8f37f48764..e36b4b5a5222 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c | |||
@@ -162,13 +162,16 @@ static void advance_queue(struct tipc_sock *tsock) | |||
162 | * | 162 | * |
163 | * Returns 0 on success, errno otherwise | 163 | * Returns 0 on success, errno otherwise |
164 | */ | 164 | */ |
165 | static int tipc_create(struct socket *sock, int protocol) | 165 | static int tipc_create(struct net *net, struct socket *sock, int protocol) |
166 | { | 166 | { |
167 | struct tipc_sock *tsock; | 167 | struct tipc_sock *tsock; |
168 | struct tipc_port *port; | 168 | struct tipc_port *port; |
169 | struct sock *sk; | 169 | struct sock *sk; |
170 | u32 ref; | 170 | u32 ref; |
171 | 171 | ||
172 | if (net != &init_net) | ||
173 | return -EAFNOSUPPORT; | ||
174 | |||
172 | if (unlikely(protocol != 0)) | 175 | if (unlikely(protocol != 0)) |
173 | return -EPROTONOSUPPORT; | 176 | return -EPROTONOSUPPORT; |
174 | 177 | ||
@@ -198,7 +201,7 @@ static int tipc_create(struct socket *sock, int protocol) | |||
198 | return -EPROTOTYPE; | 201 | return -EPROTOTYPE; |
199 | } | 202 | } |
200 | 203 | ||
201 | sk = sk_alloc(AF_TIPC, GFP_KERNEL, &tipc_proto, 1); | 204 | sk = sk_alloc(net, AF_TIPC, GFP_KERNEL, &tipc_proto, 1); |
202 | if (!sk) { | 205 | if (!sk) { |
203 | tipc_deleteport(ref); | 206 | tipc_deleteport(ref); |
204 | return -ENOMEM; | 207 | return -ENOMEM; |
@@ -1372,7 +1375,7 @@ static int accept(struct socket *sock, struct socket *newsock, int flags) | |||
1372 | } | 1375 | } |
1373 | buf = skb_peek(&sock->sk->sk_receive_queue); | 1376 | buf = skb_peek(&sock->sk->sk_receive_queue); |
1374 | 1377 | ||
1375 | res = tipc_create(newsock, 0); | 1378 | res = tipc_create(sock->sk->sk_net, newsock, 0); |
1376 | if (!res) { | 1379 | if (!res) { |
1377 | struct tipc_sock *new_tsock = tipc_sk(newsock->sk); | 1380 | struct tipc_sock *new_tsock = tipc_sk(newsock->sk); |
1378 | struct tipc_portid id; | 1381 | struct tipc_portid id; |
@@ -1629,8 +1632,8 @@ static struct proto_ops msg_ops = { | |||
1629 | .getsockopt = getsockopt, | 1632 | .getsockopt = getsockopt, |
1630 | .sendmsg = send_msg, | 1633 | .sendmsg = send_msg, |
1631 | .recvmsg = recv_msg, | 1634 | .recvmsg = recv_msg, |
1632 | .mmap = sock_no_mmap, | 1635 | .mmap = sock_no_mmap, |
1633 | .sendpage = sock_no_sendpage | 1636 | .sendpage = sock_no_sendpage |
1634 | }; | 1637 | }; |
1635 | 1638 | ||
1636 | static struct proto_ops packet_ops = { | 1639 | static struct proto_ops packet_ops = { |
@@ -1650,8 +1653,8 @@ static struct proto_ops packet_ops = { | |||
1650 | .getsockopt = getsockopt, | 1653 | .getsockopt = getsockopt, |
1651 | .sendmsg = send_packet, | 1654 | .sendmsg = send_packet, |
1652 | .recvmsg = recv_msg, | 1655 | .recvmsg = recv_msg, |
1653 | .mmap = sock_no_mmap, | 1656 | .mmap = sock_no_mmap, |
1654 | .sendpage = sock_no_sendpage | 1657 | .sendpage = sock_no_sendpage |
1655 | }; | 1658 | }; |
1656 | 1659 | ||
1657 | static struct proto_ops stream_ops = { | 1660 | static struct proto_ops stream_ops = { |
@@ -1671,8 +1674,8 @@ static struct proto_ops stream_ops = { | |||
1671 | .getsockopt = getsockopt, | 1674 | .getsockopt = getsockopt, |
1672 | .sendmsg = send_stream, | 1675 | .sendmsg = send_stream, |
1673 | .recvmsg = recv_stream, | 1676 | .recvmsg = recv_stream, |
1674 | .mmap = sock_no_mmap, | 1677 | .mmap = sock_no_mmap, |
1675 | .sendpage = sock_no_sendpage | 1678 | .sendpage = sock_no_sendpage |
1676 | }; | 1679 | }; |
1677 | 1680 | ||
1678 | static struct net_proto_family tipc_family_ops = { | 1681 | static struct net_proto_family tipc_family_ops = { |