diff options
| author | James Morris <jmorris@namei.org> | 2009-12-09 19:01:03 +1100 | 
|---|---|---|
| committer | James Morris <jmorris@namei.org> | 2009-12-09 19:01:03 +1100 | 
| commit | 1ad1f10cd915744bbe52b19423653b38287d827d (patch) | |
| tree | ae072aace36b45a55d80b8cbf1b6d92523a88ea0 /net/tipc/socket.c | |
| parent | 08e3daff217059c84c360cc71212686e0a7995af (diff) | |
| parent | 2b876f95d03e226394b5d360c86127cbefaf614b (diff) | |
Merge branch 'master' into next
Diffstat (limited to 'net/tipc/socket.c')
| -rw-r--r-- | net/tipc/socket.c | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index e6d9abf7440..1ea64f09cc4 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -177,6 +177,7 @@ static void reject_rx_queue(struct sock *sk)   * @net: network namespace (must be default network)   * @sock: pre-allocated socket structure   * @protocol: protocol indicator (must be 0) + * @kern: caused by kernel or by userspace?   *   * This routine creates additional data structures used by the TIPC socket,   * initializes them, and links them together. @@ -184,7 +185,8 @@ static void reject_rx_queue(struct sock *sk)   * Returns 0 on success, errno otherwise   */ -static int tipc_create(struct net *net, struct socket *sock, int protocol) +static int tipc_create(struct net *net, struct socket *sock, int protocol, +		       int kern)  {  	const struct proto_ops *ops;  	socket_state state; @@ -193,7 +195,7 @@ static int tipc_create(struct net *net, struct socket *sock, int protocol)  	/* Validate arguments */ -	if (net != &init_net) +	if (!net_eq(net, &init_net))  		return -EAFNOSUPPORT;  	if (unlikely(protocol != 0)) @@ -1134,13 +1136,11 @@ restart:  	/* Loop around if more data is required */ -	if ((sz_copied < buf_len)    /* didn't get all requested data */ -	    && (!skb_queue_empty(&sk->sk_receive_queue) || -		(flags & MSG_WAITALL)) -				     /* ... and more is ready or required */ -	    && (!(flags & MSG_PEEK)) /* ... and aren't just peeking at data */ -	    && (!err)                /* ... and haven't reached a FIN */ -	    ) +	if ((sz_copied < buf_len) &&	/* didn't get all requested data */ +	    (!skb_queue_empty(&sk->sk_receive_queue) || +	     (flags & MSG_WAITALL)) &&	/* and more is ready or required */ +	    (!(flags & MSG_PEEK)) &&	/* and aren't just peeking at data */ +	    (!err))			/* and haven't reached a FIN */  		goto restart;  exit: @@ -1528,7 +1528,7 @@ static int accept(struct socket *sock, struct socket *new_sock, int flags)  	buf = skb_peek(&sk->sk_receive_queue); -	res = tipc_create(sock_net(sock->sk), new_sock, 0); +	res = tipc_create(sock_net(sock->sk), new_sock, 0, 0);  	if (!res) {  		struct sock *new_sk = new_sock->sk;  		struct tipc_sock *new_tsock = tipc_sk(new_sk);  | 
