]> Pileus Git - ~andy/linux/blobdiff - net/tipc/socket.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[~andy/linux] / net / tipc / socket.c
index e741416d1d24d4655cd4096b07f84cd978c90cc7..c8341d1f995e8b68ba1b88856bab88449bfe888a 100644 (file)
@@ -239,7 +239,6 @@ static int tipc_sk_create(struct net *net, struct socket *sock, int protocol,
 int tipc_sock_create_local(int type, struct socket **res)
 {
        int rc;
-       struct sock *sk;
 
        rc = sock_create_lite(AF_TIPC, type, 0, res);
        if (rc < 0) {
@@ -248,8 +247,6 @@ int tipc_sock_create_local(int type, struct socket **res)
        }
        tipc_sk_create(&init_net, *res, 0, 1);
 
-       sk = (*res)->sk;
-
        return 0;
 }
 
@@ -770,16 +767,11 @@ static int send_stream(struct kiocb *iocb, struct socket *sock,
 
        /* Handle special cases where there is no connection */
        if (unlikely(sock->state != SS_CONNECTED)) {
-               if (sock->state == SS_UNCONNECTED) {
+               if (sock->state == SS_UNCONNECTED)
                        res = send_packet(NULL, sock, m, total_len);
-                       goto exit;
-               } else if (sock->state == SS_DISCONNECTING) {
-                       res = -EPIPE;
-                       goto exit;
-               } else {
-                       res = -ENOTCONN;
-                       goto exit;
-               }
+               else
+                       res = sock->state == SS_DISCONNECTING ? -EPIPE : -ENOTCONN;
+               goto exit;
        }
 
        if (unlikely(m->msg_name)) {
@@ -1327,14 +1319,12 @@ static u32 filter_connect(struct tipc_sock *tsock, struct sk_buff **buf)
 static unsigned int rcvbuf_limit(struct sock *sk, struct sk_buff *buf)
 {
        struct tipc_msg *msg = buf_msg(buf);
-       unsigned int limit;
 
        if (msg_connected(msg))
-               limit = sysctl_tipc_rmem[2];
-       else
-               limit = sk->sk_rcvbuf >> TIPC_CRITICAL_IMPORTANCE <<
-                       msg_importance(msg);
-       return limit;
+               return sysctl_tipc_rmem[2];
+
+       return sk->sk_rcvbuf >> TIPC_CRITICAL_IMPORTANCE <<
+               msg_importance(msg);
 }
 
 /**
@@ -1530,14 +1520,12 @@ static int connect(struct socket *sock, struct sockaddr *dest, int destlen,
                                sock->state != SS_CONNECTING,
                                timeout ? (long)msecs_to_jiffies(timeout)
                                        : MAX_SCHEDULE_TIMEOUT);
-               lock_sock(sk);
                if (res <= 0) {
                        if (res == 0)
                                res = -ETIMEDOUT;
-                       else
-                               ; /* leave "res" unchanged */
-                       goto exit;
+                       return res;
                }
+               lock_sock(sk);
        }
 
        if (unlikely(sock->state == SS_DISCONNECTING))